数据结构:二叉树子系统(11页).doc
《数据结构:二叉树子系统(11页).doc》由会员分享,可在线阅读,更多相关《数据结构:二叉树子系统(11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-/*题目:按屏幕提示用前序方法建立一棵二叉树,并能按凹入法显示二叉树结构。* 编写前序遍历、中序遍历、后序遍历、层次遍历程序。* 编写求二叉树的叶结点数、总结点数和深度的程序。* 设计一个选择式菜单,以菜单方式选择下列操作。* 二叉树子系统* * * 1-建二叉树 * * 2-凹入显示 * * 3-先序遍历 * * 4-中序遍历 * * 5-后序遍历 * * 6-层次遍历 * * 7-求叶子数 * * 8-求结点数 * * 9-求树深度 * * 0-返 回 * * 请选择菜单号(0-9)*/#include #include typedef struct bTree /二叉树结点 char
2、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: createTre
3、e() 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-中序遍历 *n); p
4、rintf(* 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 2: showT
5、ree(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(空。n); el
6、se 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); break;
7、 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-data = x; /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 二叉 子系统 11
限制150内