二叉树的基本 操作

二叉树的基本 操作

ID:47530853

大小:37.00 KB

页数:8页

时间:2020-01-13

二叉树的基本 操作_第1页
二叉树的基本 操作_第2页
二叉树的基本 操作_第3页
二叉树的基本 操作_第4页
二叉树的基本 操作_第5页
资源描述:

《二叉树的基本 操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、//二叉树的基本操作#includetypedefstructnode//定义结点{chardata;structnode*lchild,*rchild;}BinTNode;typedefBinTNode*BinTree;//定义二叉树voidCreateBinTree(BinTree&T);//先序创建二叉树voidPreOrder(BinTreeT);//先序遍历二叉树voidInOrder(BinTreeT);//中序遍历二叉树voidPostOrder(BinTreeT);//后序遍历二叉树intonechild(BinTreeT)

2、;//求度为1的结点的个数intleafs(BinTreeT);//求叶子结点的个数inttwochild(BinTreeT);//度为2的结点的个数voidtranslevel(BinTreeb);//层序遍历二叉树voidmain(){intn;BinTreeT;charch1,ch2;cout<<"欢迎进入二叉树测试程序的基本操作"<

3、

4、ch1=='Y'){cout<<"1---------建立二叉树";cout

5、<<"2---------先序遍历";cout<<"3---------中序遍历";cout<<"4---------后序遍历";cout<<"5---------单孩子结点数";cout<<"6---------双孩子结点数";cout<<"7---------叶子结点数";cout<<"8---------层序遍历";cout<<"X---------退出";cin>>ch2;switch(ch2){case'1':cout<<"请输入按先序建立二叉树的结点序列:";CreateBinTree(T);cout<

6、reak;case'2':cout<<"二叉树的先序遍历序列:";PreOrder(T);cout<

7、";n=twochild(T);cout<>ch;if(ch=='0')T=NULL;else{T=(Bin

8、TNode*)newBinTNode;T->data=ch;CreateBinTree(T->lchild);CreateBinTree(T->rchild);}}voidInOrder(BinTreeT){if(T){InOrder(T->lchild);cout<data;InOrder(T->rchild);}}voidPostOrder(BinTreeT){if(T){PostOrder(T->lchild);PostOrder(T->rchild);cout<data;}}voidPreOrder(BinTreeT){if(T){cout

9、<data;PreOrder(T->lchild);PreOrder(T->rchild);}}//层序遍历二叉树//采用一个队列q,先将二叉树的根结点入队列,然后退队列,输出该结点,若它有左子树,便将左子树根结点入队列,若它有右子树,便将右子树根结点入队列,如此直到队列空为止。//因为队列的特点是先进先出,从而达到按层序遍历的目的。#defineMAXLEN100voidtranslevel(BinTreeb){structnode{BinTreevec[MAXLEN];intf,r;}q;//定义队列q,f表示队头指针,r队尾指针q.f=0;//置队列

10、为空队列q

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。