二叉树实验报告_11.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告 实 验 报 告 题目:建立二叉树和二叉树的基本操作 姓名: 学号: 一、程序功能:(如图) 二、详细设计 元素类型、结点类型和指针类型 typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild; }BiTNode,*BiTree; typedef struct QNode{ char data; struct QNode *next; }QNode,*QueuePtr; 2.几个基本操作的函数 1. BiTNode *Makenode(char ch){ BiTNode *p; p=(BiTNode*)malloc(sizeof(BiTNode)); p-data=ch; p-lchild=NULL; p-rchild=NULL; return p; } 2. BiTree Creat(){ BiTree p; char ch; scanf(%c,ch); if(ch==#) return NULL; else p=(BiTNode*)malloc(sizeof(BiTNode)); p-data=ch; p-lchild=Creat(); p-rchild=Creat(); return p; } 3. void exchange(BiTree bt){//交换左右子树 BiTNode *p; p=(BiTNode*)malloc(sizeof(BiTNode)); if(!bt) return; p=bt-lchild; bt-lchild=bt-rchild; bt-rchild=p; exchange(bt-lchild); exchange(bt-rchild); } 4. void level(BiTree bt,int lev){//层次遍历 if(!bt) return; lev++; printf(%c%d,bt-data,lev); printf(\n); level(bt-lchild,lev); level(bt-rchild,lev); } 主函数 void main(){ int n,m,u,mune; add: printf(先序建立二叉树(请输入):\n); BiTree bt,p; bt=Creat(); while(1) {printf(\n); printf(0--退出\n); printf(1--先序遍历\n); printf(2--中序遍历\n); printf(3--后续遍历\n); printf(4--复制\n); printf(5--结点数\n); printf(6--叶子树\n); printf(7--高度\n); printf(8--层次遍历\n); printf(9--交换左右子树\n); printf(10--销毁\n); printf(请选择:0-10); printf(\n); scanf(%d,mune); switch(mune){ case 0: return; case 1: preorder(bt); break; case 2: inorder(bt); break; case 3: postorder(bt); break; case 7: m=height(bt); printf(高度为:%d,m); break; case 5: n=Number(bt); printf(节点数为:%d,n); break; case 6: u=Leafs(bt); printf(叶子树为:%d,u); break; case 8: level(bt,0); break; case 9: exchange(bt); preorder(bt); printf(\n); inorder(bt); printf(\n); postorder(bt); printf(\n); break; case 4: CopyTree(bt,p); preorder(p); break; case 10: destory(bt); break; default : printf(error); printf(\n); goto add; } }

文档评论(0)

133****5313 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档