赞
踩
#include <iostream> #include <stdlib.h> using namespace std; typedef char DataType; //二叉树数据结构 struct node { DataType info ; //存放结点数据 struct node *lchild , *rchild ; //指向左右孩子的指针 }; typedef struct node *BiTree ; /*创建二叉树 函数名:createBiTree 参数:无 返回值:二叉树根结点指针 */ BiTree createBiTree(void) { //请在此处填写代码, 完成二叉树和创建,返回值是二叉树的根结点指针 /********** Begin **********/ DataType x; BiTree node; scanf("%c",&x); if(x=='#') return NULL; node = (BiTree)malloc(sizeof(struct node)); node->info = x; if(node==NULL) return NULL; node->lchild = createBiTree(); node->rchild = createBiTree(); return node; /********** End *********/ } void visit(BiTree T) //输出结点T的数据 { cout<<T->info ; } void inOrder(BiTree root) { if(root == NULL) return ; inOrder(root->lchild); visit(root); inOrder(root->rchild); } int main(void) { BiTree root = createBiTree(); inOrder(root); }
#include <iostream> using namespace std; typedef char DataType; //二叉树数据结构 struct node { DataType info ; //存放结点数据 struct node *lchild , *rchild ; //指向左右孩子的指针 }; typedef struct node *BiTree ; /*创建二叉树 函数名:createBiTree 参数:无 返回值:二叉树根结点指针 */ BiTree createBiTree(void) { char ch ; BiTree root ; cin>>ch ; if(ch == '#') root = NULL; else{ root = new struct node ; root->info = ch ; root->lchild = createBiTree() ; root->rchild = createBiTree(); } return root ; } void visit(BiTree T) { cout<<T->info ; } int countLeaf(BiTree root) { //请在此处填写代码, 计算二叉树中树叶的个数 /********** Begin **********/ if(root==NULL)return 0; if(root->lchild==NULL&&root->rchild==NULL)return 1; else return countLeaf(root->lchild)+countLeaf(root->rchild); /********** End **********/ } int main(void) { BiTree root = createBiTree(); cout<<countLeaf(root); }
#include <iostream> using namespace std; typedef char DataType; //二叉树数据结构 struct node { DataType info ; //存放结点数据 struct node *lchild , *rchild ; //指向左右孩子的指针 }; typedef struct node *BiTree ; /*创建二叉树 函数名:createBiTree 参数:无 返回值:二叉树根结点指针 */ BiTree createBiTree(void) { char ch ; BiTree root ; cin>>ch ; if(ch == '#') root = NULL; else{ root = new struct node ; root->info = ch ; root->lchild = createBiTree() ; root->rchild = createBiTree(); } return root ; } void changeLR(BiTree root) { //请在此处填写代码, 完成二叉树左右子树互换 /********** Begin **********/ BiTree temp = NULL; if(root){ temp = root-> lchild; root -> lchild = root ->rchild; root->rchild = temp; changeLR(root->lchild); changeLR(root->rchild); } /********** End **********/ } void visit(BiTree T) //输出结点T的数据 { cout<<T->info ; } void inOrder(BiTree root) { if(root == NULL) return ; inOrder(root->lchild); visit(root); inOrder(root->rchild); } int main(void) { BiTree root = createBiTree(); changeLR(root); inOrder(root); }
#include <iostream> using namespace std; typedef char DataType; //二叉树数据结构 struct node { DataType info ; //存放结点数据 struct node *lchild , *rchild ; //指向左右孩子的指针 }; typedef struct node *BiTree ; /*创建二叉树 函数名:createBiTree 参数:无 返回值:二叉树根结点指针 */ BiTree createBiTree(void) { char ch ; BiTree root ; cin>>ch ; if(ch == '#') root = NULL; else{ root = new struct node ; root->info = ch ; root->lchild = createBiTree() ; root->rchild = createBiTree(); } return root ; } void visit(BiTree T) { cout<<T->info ; } int countFullNode(BiTree root) { //请在此处填写代码,计算二叉树中满结点的个数 /********** Begin **********/ int count = 0; if(root){ if(root->lchild&&root->rchild){ count++; count += countFullNode(root->lchild); count += countFullNode(root->rchild); } } return count; /*********** End-**********/ } int main(void) { BiTree root = createBiTree(); cout<<countFullNode(root) ; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。