欢迎来到天天文库
浏览记录
ID:48743408
大小:80.50 KB
页数:6页
时间:2020-02-27
《数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、专业.专注09级数据结构课程设计程序源代码#include"stdio.h"#include"stdlib.h"#definenum100#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-2#defineRIGHT1#defineLEFT0typedefintStatus;typedefcharDataType;intfound;typedefstructnode{DataTypedata;structnode*lchild,*rchild;}BinTNode,*BinTr
2、ee;BinTNode*p;intCreateBiTree(BinTree*bt){charch;scanf("%c",&ch);if(ch=='@')(*bt)=NULL;else{(*bt)=(BinTNode*)malloc(sizeof(BinTNode));if(!(*bt))returnERROR;(*bt)->data=ch;CreateBiTree(&(*bt)->lchild);CreateBiTree(&(*bt)->rchild);}returnOK;.学习参考.专业.专注}intInorder(BinTree&bt)/{Bin
3、TNode*stack[num];//定义栈数组inttop=0;//初始化栈stack[top]=bt;do{while(NULL!=stack[top]){//扫描根结点及其所有的左结点并入栈top=top+1;stack[top]=stack[top-1]->lchild;}top=top-1;//退栈if(top>=0)//判断栈是否为空{printf("%c",stack[top]->data);//访问结点stack[top]=stack[top]->rchild;//扫描右子树}}while(top>=0);returnOK;}//In
4、orderintDepth(BinTreebt)//求二叉树的深度{inth,lh,rh;if(!bt)h=0;else{lh=Depth(bt->lchild);rh=Depth(bt->rchild);if(lh>=rh)h=lh+1;elseh=rh+1;}returnh;}.学习参考.专业.专注intLeafCount(BinTreebt)//5.求叶子节点的个数{if(!bt)return0;//空树没有叶子elseif(!bt->lchild&&!bt->rchild)return1;//叶子结点elsereturnLeafCount(b
5、t->lchild)+LeafCount(bt->rchild);}//LeafCountintExchange(BinTree*bt){BinTNode*temp;if((*bt)==NULL)returnERROR;else{temp=(*bt)->lchild;(*bt)->lchild=(*bt)->rchild;(*bt)->rchild=temp;}Exchange(&(*bt)->lchild);Exchange(&(*bt)->rchild);returnOK;}voidmain(){BinTreebt;intxz=1;charch;
6、BinTreetree;while(xz){printf("建立二叉树并求指定结点路径");printf("===========================");printf("1.建立二叉树的存储结构");printf("2.求解二叉树的中序遍历");printf("3.求二叉树指定节点的路径");printf("4.求二叉树的深度");printf("5.求二叉树的叶子节点个数");printf("6.将二叉树左右子树交换");printf("0.退出系统");printf("==============
7、=============");.学习参考.专业.专注printf("请选择:(0-6)");scanf("%d",&xz);getchar();switch(xz){case0:break;case1:printf("输入二叉树的先序序列结点值:");CreateBiTree(&tree);getchar();printf("二叉树的链式存储结构建立完成!");break;case2:printf("该二叉树的中序遍历序列是:");Inorder(tree);printf("");break;case3:printf("输入
8、要求路径的结点值:");scanf("%c",&ch);getchar();FindNodePath(tre
此文档下载收益归作者所有