c语言打印树形图形,数据结构C语言版树形结构.ppt
数据结构C语言版树形结构
St中元素 算法执行的操作 ch AC k=2 , AC 建立E结点,因k=1,将其作为C结点的左孩子结点 E AC C结点进栈,k=1 ( A 建立C结点,因k=2,将其作为A结点的右孩子结点 C A k=2 , A 退栈一次 ) AB 退栈一次 ) ABD 建立E结点,因k=2,将其作为D结点的右孩子结点 G ABD k=2 , ABD D结点进栈,k=1 ( St中元素 算法执行的操作 ch ? 算法结束 ch扫描完毕 空 退栈一次 ) A 退栈一次 ) AC 建立F结点,因k=2,将其作为C结点的右孩子结点 F 生成的二叉树=> (2)查找结点FindNode(*b,x) 采用先序遍历递归算法查找值为x的结点。找到后返回其指针,否则返回NULL。算法如下: BTNode *FindNode(BTNode *b,ElemType x) { BTNode *p; if (b==NULL) return NULL; else if (b->data==x) return b; else { p=FindNode(b->lchild,x); if (p!=NULL) return p; else return FindNode(b->rchild,x); } } (3)找孩子结点LchildNode(p)和RchildNode(p) 直接返回*p结点的左孩子结点或右孩子结点的指针。算法如下: BTNode *LchildNode(BTNode *p) { return p->lchild; } BTNode *RchildNode(BTNode *p) { return p->rchild; } (4)求高度BTNodeDepth(*b) 求二叉树的高度的递归模型f()如下: f(NULL)=0 f(b)=MAX{f(b->lchild),f(b->rchild)}+1 其他情况 对应的算法如下: int BTNodeDepth(BTNode *b) { int lchilddep,rchilddep; if (b==NULL) return(0); /*空树的高度为0*/ else { lchilddep=BTNodeDepth(b->lchild); /*求左子树的高度为lchilddep*/ rchilddep=BTNodeDepth(b->rchild); /*求右子树的高度为rchilddep*/ return(lchilddep>rchilddep)? (lchilddep+1):(rchilddep+1); } } (5)输出二叉树DispBTNode(*b) 其过程是:对于非空二叉树b,先输出其元素值,当存在左孩子结点或右孩子结点时,输出一个“(”符号,然后递归处理左子树,输出一个“,”符号,递归处理右子树,最后输出一个“)”符号。对应的递归算法如下: void DispBTNode(BTNode *b) {if (b!=NULL) { printf("%c",b->data); if (b->lchild!=NULL || b->rchild!=NULL) { printf("("); DispBTNode(b->lchild); /*递归处理左子树*/ if (b->rchild!=NULL) printf(","); DispBTNode(b->rchild); /*递归处理右子树*/ printf(")"); } } } 例7.3 假设二叉树采用二叉链存储结构,设计一个算法判断两棵二叉树是否相似,所谓二叉树t1和t2是相似的指的是t1和t2都是空的二叉树;或者t1和t2的根结点是相似的,以及t1的左子树和t2的左子树是相似的且t1的右子树与t2的右子树是相似的。 解:判断两棵二叉树是否相似的递归模型f()如下: f(t1,t2)=true 若t1=t2=NULL f(t1,t2)=false 若t1、t2之一为NULL,另一不为NULL f(t1,t2
c语言打印树形图形,数据结构C语言版树形结构.ppt相关推荐
- 怎某泳c语言输出图形,c语言打印字符图形.doc
c语言打印字符图形.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得 ...
- c语言 静态链表插入排序,数据结构C语言版 表插入排序
西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...
- 用c语言绘制五角星图形,用c语言画出一个五角星图案
用c语言画出一个五角星图案 感觉上五角星和六角星 的思路差不多,所以就不做重复劳动啦~嘿嘿O(∩_∩)O~ 以下公布一个非本人的代码,虽然感觉这个五角星画的不是很"正",但总体感觉 ...
- 数据结构c语言课程设计报告,(数据结构c语言课程设计报告.doc
(数据结构c语言课程设计报告 数据结构 课程设计报告 设计题目:迷宫求解 专 业 机电一体化 班 级 08专接本 学 生 学 号 104910252011 指导教师 高在村 完成时间 2011. 5 ...
- c语言编程队列题,数据结构C语言编程 队列.doc
数据结构C语言编程 队列 #include #include #define MAXQSIZE 10 typedef struct { int *base; //存储空间的起始地址,即数组的首地址,即 ...
- 猴子选王c语言链表程序代码,数据结构(C语言)用栈和链表编写猴子选大王程序...
<数据结构(C语言)用栈和链表编写猴子选大王程序>由会员分享,可在线阅读,更多相关<数据结构(C语言)用栈和链表编写猴子选大王程序(3页珍藏版)>请在人人文库网上搜索. 1.i ...
- c语言打印%-6llu,从零开始学C语言
从零开始学C语言 @阆苑祁寒 写在前面:本文从一个初学者的角度,给出了对C语言的简单理解.如有谬误,敬请指出! Week1 1 #include 2 int main(void)3 {4 printf ...
- 数据结构c语言大题答案,数据结构c语言版试题大全(含答案)
if (i*1.0>sqrt(n)) printf \是一素数\ else printf \不是一素数\} (2) sum1(int n) - 9 - { int p=1,sum=0,i; fo ...
- c语言打印空心等腰梯形乐学,C语言做激光发射
/*C语言做激光发射器游戏,按上下左右箭头键移动 发射器,按空格键发射激光,按Esc键结束游戏*/ #include #include #include void main() { int i,j;/ ...
最新文章
- ECLIPSE 插件使用LINKS目录的用法
- 超四分之一的人工可能被机器取代,AI或成英国脱欧的一大阻碍
- .NET Core 2.0应用程序大小减少50%
- 2021年中国带LED显示屏的温度调节器市场趋势报告、技术动态创新及2027年市场预测
- java树广度优先_如何在功能上生成树广度优先 . (使用Haskell)
- java button 背景色_以编程方式删除UIButton背景颜色
- 小学生python游戏编程5----拼图游戏继
- nginx系列第一篇:nginx源码下载,编译和安装
- 手把手教你搭建基于 MarkDown 的 Wiki 系统
- Maven 配置阿里云镜像
- 有了这5个免费下载音乐的wangzhan,从此告别各种VIP
- 软件测试找游戏bug,游戏测试用例及游戏测试bug详解
- 在服务端录制语音视频
- cad制图与计算机方面的联系,计算机与CAD制图理论知识.doc
- app怎么调用mysql数据_教你如何拿别人APP中的数据
- found dwarf version #039;4#039; linux,开发一个Linux调试器(四):Elves和dwarves
- Dva的Effects接受的参数
- 简单html js 特效,Js实现简单的小球运动特效
- 读《测试驱动开发的3项修炼--走出TDD丛林》
- onegreen的绿软word2003绿色版删除不掉的解决方案
热门文章
- python2.X在linux上的安装
- 基于mindspore的口罩检测训练与在线推理
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
- 在shell脚本中调用sqlplus
- Spark配置属性详解
- Lamport Logical Clock 学习
- 深度学习笔记:手写一个单隐层的神经网络
- LAMP+LNMP(三)Apache(httpd)安装实践
- 梁勇 java教材 编程练习题 第二章 2.6 键盘 读取一个在0 到 9999 之间的整数,并将该整数的各位数字相加。...
- 【EASYDOM系列教程】之创建页面元素