ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:16.24KB ,
资源ID:3066138      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3066138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构二叉树子系统.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构二叉树子系统.docx

1、数据结构二叉树子系统/*题目:按屏幕提示用前序方法建立一棵二叉树,并能按凹入法显示二叉树结构。* 编写前序遍历、中序遍历、后序遍历、层次遍历程序。* 编写求二叉树的叶结点数、总结点数和深度的程序。* 设计一个选择式菜单,以菜单方式选择下列操作。* 二叉树子系统* * * 1-建二叉树 * * 2-凹入显示 * * 3-先序遍历 * * 4-中序遍历 * * 5-后序遍历 * * 6-层次遍历 * * 7-求叶子数 * * 8-求结点数 * * 9-求树深度 * * 0-返 回 * * 请选择菜单号(0-9)*/#include #include typedef struct bTree /二叉

2、树结点 char data; /值域 struct bTree *lchild; /左孩子 struct bTree *rchild; /右孩子BT;BT *createTree();void showTree(BT *t);void preOrder(BT *t);void postOrder(BT *t);void inOrder(BT *t);void levelOrder(BT *t);int leafNum(BT *t);int nodeNum(BT *t);int treeDepth(BT *t);/*Function: main()Description: 主调函数Calls:

3、createTree() showTree() preOrder() postOrder() inOrder() leafNum() levelOrder() nodeNum() treeDepth()Input: NULLReturn: voidOthers: NULL*/void main() BT *t = NULL; int choice, k = 1; while (k) printf(n 二叉树子系统n); printf(*n); printf(* 1-建二叉树 *n); printf(* 2-凹入显示 *n); printf(* 3-先序遍历 *n); printf(* 4-中序

4、遍历 *n); printf(* 5-后序遍历 *n); printf(* 6-层次遍历 *n); printf(* 7-求叶子数 *n); printf(* 8-求结点数 *n); printf(* 9-求树深度 *n); printf(* 0-返 回 *n); printf(*n); printf(请选择菜单号(0-9):); fflush(stdin); scanf(%d, &choice); switch(choice) case 1: printf(请输入根结点(0表示该结点为空):); t = createTree(); printf(二叉树建立成功。n); break; case

5、 2: showTree(t); break; case 3: printf(先序遍历序列:); if (t = NULL) printf(空。n); else preOrder(t); break; case 4: printf(中序遍历序列:); if (t = NULL) printf(空。n); else inOrder(t); break; case 5: printf(后序遍历序列:); if (t = NULL) printf(空。n); else postOrder(t); break; case 6: printf(层次遍历序列:); if (t = NULL) printf

6、(空。n); else levelOrder(t); break; case 7: printf(该二叉树的叶子数:); if (t = NULL) printf(0。n); else printf(%d。n, leafNum(t); break; case 8: printf(该二叉树的结点数为:); if (t = NULL) printf(0。n); else printf(%d。n, nodeNum(t); break; case 9: printf(该二叉树的深度为:); if (t = NULL) printf(0。n); else printf(%d。n, treeDepth(t

7、); break; case 0: k = 0; break; default: k = 1; break; /*Function: createTree()Description: 建立二叉树Calls: createTree()Input: NULLReturn: BT *Others: NULL*/BT *createTree() /建立二叉树 BT *t; char x; getchar(); scanf(%c, &x); /获取输入的结点值 if (x = 0) /输入的值为零,结点为空 t = NULL; else t = (BT *)malloc(sizeof(BT); t-da

8、ta = x; /赋值 printf(请输入结点%c的左孩子:, t-data); t-lchild = createTree(); /递归建立左孩子 printf(请输入结点%c的右孩子:, t-data); t-rchild = createTree(); /递归调用 return t;/*Function: showTree()Description: 凹入显示二叉树Calls: voidInput: t:结点指针Return: voidOthers: NULL*/void showTree(BT *t) /显示二叉树 BT *sta100, *p; int lev1002; /第一个空

9、存要空的长度,第二空存左右孩子的标示 int tp, n, i, wid = 4; if (t != NULL) /结点非空 printf(凹入表示法:n); tp = 1; statp = t; /将各个结点的指针放在指针数组中 levtp0 = wid; /显示的前面的空白长度 while (tp 0) p = statp; n = levtp0; /显示 for (i = 0; idata); for (i = n+1; i lchild != NULL) tp+; statp = p-lchild; levtp0 = n+wid; levtp1 = 1; if (p-rchild !=

10、 NULL) tp+; statp = p-rchild; levtp0 = n+wid; levtp1 = 2; /*Function: preOrder()Description: 先序遍历Calls: preOrder()Input: t:结点指针Return: voidOthers: NULL*/void preOrder(BT *t) /先序遍历 if (t) /结点不为空 printf(%3c, t-data); /显示 preOrder(t-lchild); /递归调用 preOrder(t-rchild); /*Function: postOrder()Description: 后序遍历Calls: postOrder()Input: t:结点指针Return: voidOthers: NULL*/void postOrder(BT *t) /后序遍历 if (t) /结点不为空 postOrder(t-lchild); postOrder(t-rchild); printf(%3c, t-data); /显示 /*Function: inOrder()Description: 中序遍历Calls: inOrder()Input: t:结点

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1