网站大量收购闲置独家精品文档,联系QQ:2885784924

二叉树课程设计.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二叉树课程设计

实验6.1 实现二叉树各种基本运算的算法 编写一个程序algo6-1.cpp,实现二叉树的各种运算,并在此基础上设计一个主程序完成如下功能(T为如图所示的一棵二叉树): 以括号表示法输出二叉树T。 输出H结点的左、右孩子结点值。 输出二叉树T的叶子结点个数。 输出二叉树T的深度。 输出对二叉树T的先序遍历序列。 输出对二叉树T的中序遍历序列。 输出对二叉树T的后序遍历序列。 提示:创建二叉树的算法参见书上131页的算法6.4。按先序序列输入二叉树中结点的值(一个字符),#字符表示空树。输入序列: ABD##EHJ##KL##M#N###CF##G#I## 以括号表示法输出二叉树的结果为: A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I))) 程序段 #includestdio.h #includestdlib.h #includesys/timeb.h //#define MAX 50 #define OK 1 //?t2?ê÷á′±í′?′¢?á11 typedef struct btnode { char Data;//?áμ?êy?Y?úèY struct btnode *Llink;//×ó×óê÷???? struct btnode *Rlink;//óò×óê÷???? }btnode,*btreetype; //11?ì???t2?ê÷ int InitBiTree(btreetype T) { T=NULL; return OK; } //?¨á¢?t2?ê÷ void CreatBiTree(btreetype T) {char ch; scanf(%c,ch); if(ch== )T=NULL; else { T=(btreetype)malloc(sizeof(btnode)); if(!T)exit(-1); T-Data=ch; CreatBiTree(T-Llink); CreatBiTree(T-Rlink); } } //ê?3??áμ?μ?×óo¢×ó void LeftChild(btreetype M,char e) { btreetype p; p=M; if(p!=NULL) {if(p-Data==e) {printf(%cμ?×óo¢×óê?%c\n,e,p-Llink-Data);} LeftChild(p-Llink,e); LeftChild(p-Rlink,e);} } //ê?3??áμ?μ?óòo¢×ó void RightChild(btreetype M,char e) { btreetype p; p=M; if(p!=NULL) {if(p-Data==e) {printf(%cμ?óòo¢×óê?%c\n,e,p-Rlink-Data);} RightChild(p-Llink,e); RightChild(p-Rlink,e);} } //í3??ò?×ó?áμ???êy int LeafPoint(btreetype t) { if(!t) return 0; else if(!t-Llink!t-Rlink) return 1; else return (LeafPoint(t-Llink) + LeafPoint(t-Rlink)); } //?t2?ê÷é??è int Depth(btreetype T) { int i,j; if(!T)return 0; if(T-Llink) i=Depth(T-Llink); else i=0; if(T-Rlink) j=Depth(T-Rlink); else j=0; return ij?i+1:j+1; } //à¨o?±íê?·¨ê?3??t2?ê÷ void DispBiTree(btreetype T) { if (T!=NULL) { printf(%c,T-Data); if (T-Llink!=NULL||T-Rlink!=NULL) { printf((); DispBiTree(T-Llink); if (T-Rlink!=NULL)printf(,); DispBiTree(T-Rlink); printf()); } } } //?èDò±éàú?t2?ê÷ void PreOrder(btreetype T) { if(T){ printf(%c,T-Data); PreOrder(T

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档