数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc

数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc

ID:48743408

大小:80.50 KB

页数:6页

时间:2020-02-27

数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc_第1页
数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc_第2页
数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc_第3页
数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc_第4页
数据结构课程设计建立二叉树并求指定结点路径程序源代码.doc_第5页
资源描述:

《数据结构课程设计建立二叉树并求指定结点路径程序源代码.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

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

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

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