欢迎来到天天文库
浏览记录
ID:38103658
大小:34.50 KB
页数:4页
时间:2019-05-25
《二叉树C++实验代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#includeusingnamespacestd;voidvisit(charc){cout<<"["<2、LL;}voidPreOrderTraverse();voidInOrderTraverse();voidPostOrderTraverse();voidInOrderTraverse2();BiTNode*SearchBST1(BiTNode*T,intkey);voidInsertBST1(BiTNode*&T,inte);private:voidPreOrder(BiTNode*p);voidInOrder(BiTNode*p);voidPostOrder(BiTNode*p);voidInOrder2(BiTNode3、*p);};BiTNode*BiTree::SearchBST1(BiTNode*T,intkey){if(T==NULL)returnT;//查找不成功elseif(keydata)returnSearchBST1(T->lchild,key);elseif(key>T->data)returnSearchBST1(T->rchild,key);elsereturnT;//查找成功key==T->data}voidBiTree::InsertBST1(BiTNode*&T,inte){if(T==NULL)T=ne4、wBiTNode(e,NULL,NULL);elseif(edata)InsertBST1(T->lchild,e);elseif(e>T->data)InsertBST1(T->rchild,e);}intcntLeaf(BiTNode*p){if(p==NULL)return0;intcnt=0;if(p->lchild==NULL&&p->rchild==NULL){return1;}else{returncntLeaf(p->lchild)+cntLeaf(p->rchild);}}voidBiTree::P5、reOrderTraverse(){PreOrder(root);}voidBiTree::InOrderTraverse(){InOrder(root);}voidBiTree::InOrderTraverse2(){InOrder2(root);}voidBiTree::PostOrderTraverse(){PostOrder(root);}voidBiTree::PreOrder(BiTNode*p){if(p==NULL)return;cout<data;PreOrder(p->lchild);PreOrd6、er(p->rchild);}voidBiTree::InOrder(BiTNode*p){if(p==NULL)return;PreOrder(p->lchild);cout<data;PreOrder(p->rchild);}voidBiTree::InOrder2(BiTNode*p){if(p==NULL)return;PreOrder(p->rchild);cout<data;PreOrder(p->lchild);}voidBiTree::PostOrder(BiTNode*p){if(p==NU7、LL)return;PostOrder(p->lchild);PostOrder(p->rchild);cout<data;}BiTNode*CopyTree(BiTNode*T){if(T==NULL)returnNULL;BiTNode*l=CopyTree(T->lchild);//复制左子树BiTNode*r=CopyTree(T->rchild);//复制右子树BiTNode*newT=newBiTNode(T->data,l,r);returnnewT;}intmain(){BiTreeT;T.Inser8、tBST1(T.root,10);T.InsertBST1(T.root,5);//T.PreOrderTraverse();//cout<
2、LL;}voidPreOrderTraverse();voidInOrderTraverse();voidPostOrderTraverse();voidInOrderTraverse2();BiTNode*SearchBST1(BiTNode*T,intkey);voidInsertBST1(BiTNode*&T,inte);private:voidPreOrder(BiTNode*p);voidInOrder(BiTNode*p);voidPostOrder(BiTNode*p);voidInOrder2(BiTNode
3、*p);};BiTNode*BiTree::SearchBST1(BiTNode*T,intkey){if(T==NULL)returnT;//查找不成功elseif(keydata)returnSearchBST1(T->lchild,key);elseif(key>T->data)returnSearchBST1(T->rchild,key);elsereturnT;//查找成功key==T->data}voidBiTree::InsertBST1(BiTNode*&T,inte){if(T==NULL)T=ne
4、wBiTNode(e,NULL,NULL);elseif(edata)InsertBST1(T->lchild,e);elseif(e>T->data)InsertBST1(T->rchild,e);}intcntLeaf(BiTNode*p){if(p==NULL)return0;intcnt=0;if(p->lchild==NULL&&p->rchild==NULL){return1;}else{returncntLeaf(p->lchild)+cntLeaf(p->rchild);}}voidBiTree::P
5、reOrderTraverse(){PreOrder(root);}voidBiTree::InOrderTraverse(){InOrder(root);}voidBiTree::InOrderTraverse2(){InOrder2(root);}voidBiTree::PostOrderTraverse(){PostOrder(root);}voidBiTree::PreOrder(BiTNode*p){if(p==NULL)return;cout<data;PreOrder(p->lchild);PreOrd
6、er(p->rchild);}voidBiTree::InOrder(BiTNode*p){if(p==NULL)return;PreOrder(p->lchild);cout<data;PreOrder(p->rchild);}voidBiTree::InOrder2(BiTNode*p){if(p==NULL)return;PreOrder(p->rchild);cout<data;PreOrder(p->lchild);}voidBiTree::PostOrder(BiTNode*p){if(p==NU
7、LL)return;PostOrder(p->lchild);PostOrder(p->rchild);cout<data;}BiTNode*CopyTree(BiTNode*T){if(T==NULL)returnNULL;BiTNode*l=CopyTree(T->lchild);//复制左子树BiTNode*r=CopyTree(T->rchild);//复制右子树BiTNode*newT=newBiTNode(T->data,l,r);returnnewT;}intmain(){BiTreeT;T.Inser
8、tBST1(T.root,10);T.InsertBST1(T.root,5);//T.PreOrderTraverse();//cout<
此文档下载收益归作者所有