- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
作业3:
这个作业也是上机实验题
试编写程序:
(1) 建立下面这样一棵二叉树
(2) 后序遍历这棵二叉树
(3) 按层次遍历
(4) 求叶子数和深度。
(5) 查找値为‘H’的结点,如存在,则打印出’H’的所有祖先。
#includestdio.h
#includemalloc.h
#define max 100
typedef struct bnode
{
char data;
struct bnode *lchild,*rchild;
}Bnode,*Btree;
typedef struct
{
Btree data[max];
int front ;
int rear;
}queue;
char a[]={#,A,B,C,D,#,E,F,#,G,#,#,H,#};
int length=14;
Btree Creatree()
{
char ch;
Btree S;
ch=getchar();
if(ch==#)
{
S=NULL;
}
else
{
S=(Btree)malloc(sizeof(Bnode));
S-data=ch;
S-lchild=Creatree();
S-rchild=Creatree();
}
return S;
}
void Lastree(Btree S) /*后续遍历*/
{
if(S)
{
Lastree(S-lchild);
Lastree(S-rchild);
printf(%4c,S-data);
}
}
int leafcount(Btree S) /*求叶子数*/
{
if(S==NULL)
return 0;
else
{
if(!S-rchild!S-lchild)
return 1;
else
return leafcount(S-lchild)+leafcount(S-rchild);
}
}
int depth(Btree S) /*求深度*/
{
if(S==NULL)
return 0;
else
{
int m=depth(S-lchild);
int n=depth(S-rchild);
return(mn?m:n)+1;
}
}
void Serch() /*求祖先*/
{
char x;
int i,y;
printf(enter whats you want serch:\n);
scanf(%c,x);
printf(put out the anster:\n);
for(i=0;ilength;i++)
{
if(x==a[i])
y=i;
}
while(y/2!=0)
{
printf(%4c,a[y/2]);
y=y/2;
}
}
void CreatQueue(queue *q)
{
q-front=-1;
q-rear=-1;
}
int EnQueue(queue *q,Btree c)
{
q-rear++;
if(q-rear=max)
{
printf(queue overflow!\n);
return 0;
}
q-data[q-rear]=c;
return 1;
}
int DeQueue(queue *q,Btree *ret)
{
if(q-front==q-rear)
return 0;
q-front++;
*ret=q-data[q-front];
return 1;
}
void Cengci(Btree S) /*层次遍历*/
{
queue tq;
Btree res;
CreatQueue(tq);
EnQueue(tq,S);
while(DeQueue(tq,res)==1)
{
if(res)
{
printf(%4c,res-data);
EnQueue(tq,res-lchild);
EnQueue(tq,res-rchild);
}
}
}
void main()
{
Btree t;
printf(please enter a tree(end with #):\n);
t=Creatree();
printf(please output the tree with Last:\n);
Lastree(t);
printf(\n);
printf(leafs number is %d:\n,leafcount(t));
printf(trees depth is %d:\n,depth(t));
printf(cengcihua:\n);
Cengci(t);
printf(\n);
fflush(stdin);
Serch();
printf
您可能关注的文档
- 《工程图学基础》归纳与总结.ppt
- 三年级语文《风筝》PPT.ppt
- 一年级体育课教案.doc
- 一年级诵读材料内容.doc
- 三年级上册语文园地三课件 (1).ppt
- ERP模拟沙盘实训总结报告.ppt
- 三年级上册3《爬天都峰》PPT课件.ppt
- 三下乡指导教师总结报告.doc
- xx中学食堂劳务承包合同.doc
- XX村第一书记帮扶工作计划.doc
- 深度解析(2026)《ISO 22002-12025食品安全前提方案—第1部分:食品制造》.pptx
- 深度解析(2026)《ISO 22002-52025食品安全前提方案—第5部分:运输和储存》.pptx
- 深度解析(2026)《ISO 22002-42025 食品安全前提方案 — 第4部分:食品包装制造》.pptx
- 徒步活动策划方案.doc
- 深度解析(2026)《ISO 22002-62025食品安全前提方案—第6部分:饲料及动物食品生产》.pptx
- 2026年新版郯城期末真题卷.doc
- 深度解析(2026)《ISO 22476-72012岩土工程勘察与测试 — 现场测试 — 第7部分:钻孔千斤顶试验》.pptx
- 深度解析(2026)《ISO 22090-22014 船舶与海洋技术 — 航向传送装置(THD) — 第2部分:地磁原理》.pptx
- 深度解析(2026)《ISO 23584-22012 光学和光子学 — 参考字典规范 — 第 2 部分:类与特性定义》:构建智能制造数据基石的专家视角与未来展望.pptx
- 深度解析(2026)《ISO 22932-92025 Mining — Vocabulary — Part 9 Drainage》:构建未来矿山“水脉”治理与可持续发展的新语言体系.pptx
最近下载
- GB 45673-2025危险化学品企业安全生产标准化规章制度之24:设备分级管理管理制度(雷泽佳编制-2025A0).pdf VIP
- 光学试卷及答案.docx VIP
- 《小数乘除法》期末复习课件ppt.pptx VIP
- GB 45673-2025危险化学品企业安全生产标准化规章制度之48:变更管理制度(雷泽佳编制-2025A0).pdf VIP
- GB 45673-2025危险化学品企业安全生产标准化规章制度之15:岗位能力标准管理制度(雷泽佳编制-2025A0).pdf VIP
- GB 45673-2025危险化学品企业安全生产标准化规章制度之31:设备完整性数据库管理制度(雷泽佳编制-2025A0).pdf VIP
- ZJ40L1钻机总说明书.pdf VIP
- 售后服务部管手册.doc VIP
- 2023迎春杯 数学花园探秘小高组.pdf VIP
- 自我探索与心理成长知到智慧树期末考试答案题库2025年浙江大学.docx VIP
原创力文档


文档评论(0)