1 / 26
文档名称:

数据结构课程设计-线索二叉树的应用.doc

格式:doc   页数:26
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构课程设计-线索二叉树的应用.doc

上传人:3346389411 2012/8/4 文件大小:0 KB

下载得到文件列表

数据结构课程设计-线索二叉树的应用.doc

文档介绍

文档介绍:数据结构课程设计报告
(2010 / 2011 学年第 二 学期)
题    目: 线索二叉树的应用
专业班级: 09计算机(2)班
学生姓名:
学    号:
指导教师:  
设计周数:     19、20周
设计成绩:
2011   年 7 月 4 日
需求分析:
1、题目:线索二叉树的应用
2、目的和任务:
《数据结构》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。其目的就是要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养良好的程序设计技能。
其任务为:要求:实现线索树建立、插入、删除、恢复线索的实现。
3、数据输入输出:原始数据要求输入二叉树的7个结点:1234567,输出的是一个二叉树,这就实现了二叉树的建立过程。然后对二叉树进行线索化。对其进行插入:在7结点处插入结点8;删除:删除结点8;恢复线索等功能。
进行二叉树的初始化,依次输入,以*结束:
1234567*
线索二叉树的应用
****************************
1、进行二叉树线索化
2、进行插入操作
3、删除
4、中序输出
5、线索输出
0、退出
请选择:1
已经实现二叉树的线索化,可选择5查看线索
4、设计算法测试用例:(1)输入结点:1234567;(2)对输入的二叉树进行线索化;(3)查看二叉树的中序线索输出:4->2->5->1->6->3->7;(4)在7结点处插入结点8,此时完成线索化恢复,查看二叉树的中序线索输出:4->2->5->1->6->3->8->7;(5)删除结点8,此时完成线索化恢复,发现结点8,ltag=1,rtag=1,查看二叉树的中序线索输出:4->2->5->1->6->3->7;(6)继续删除结点r,发现无该结点,则输入错误。
二、数据结构的选择和概要设计
1、数据结构
二叉树是由n(n>=0)个结点组成的有限集合,其中:(1)当n=0时,为空二叉树。(2)当n>0时,有且仅有一个特定的结点,称为二叉树的根,不相交的子集,其中每一个子集本身又是一棵二叉树,分别称为左子树和右子树。线索化是将二叉树转换成线索二叉树的过程。按某种遍历将二叉树线索化,只需在遍历过程中将二叉树中每个结点的空的左右孩子指针域分别修改为指向其前驱和后继结点。
(1)线索二叉树的结点的结构如下:
ltag
lchild
data
rtag
rchild
约定:
Ltag=0 //表示lchild域指示该结点的左孩子
Ltag=1 //表示lchild域指示该结点的前驱
Rtag=0 //表示rchild域指示该结点的右孩子
Rtag=1 //表示rchild域指示该结点的后继
(2)线索链表中结点类型说明:
Typedef char datatype;
Typedef struct node{
Int ltag,rtag;
Datatype data;
Struct node *lchild,*rchild;
}bithptr;
(3)线索化算法:结点*pre 是结点*p的前驱,而*p是*pre的后继。这样,当遍历到结点*p时,可以进行以下三步操作:
1)若*p有空指针域,则将相应的标志置1.
2)若*p的左线索标志已经建立(p->ltag=1),则可使其前驱线索化,令p->lchild=pre.
3)若*pre的右线索标志已经建立(pre->rtag=1),则可使其后继线索化,令pre->rchild=p.
如此,二叉树的线索化可以在二叉树的遍历过程完成,该算法应为相应顺序的遍历算法的一种变化形式。
(4)二叉链表的建立:其算法描述如下:
Bitree *crt_bt_pre(bitree *bt){
Char ch;
Ch=getchar( );
If(ch==‘#’)
Bt=null;
Else{
Bt=(bitree *)malloc(sizeof(bitree));
Bt->data=c;
Bt->lchild=crt_bt_pre(bt->lchild);
Bt->rchild=crt_bt_pre(bt->rchild);
}
Return(bt);
}
2、设计思想
建立二叉树(即指在内存中建立二叉树的存储结构),建立一个二叉链表,需按某种顺序一次输入二叉树中的结点,且输入顺序必须隐含结点间的逻辑结构信息。对于一般的二叉树,需添加虚结点,使其成为完全二叉树。
关键在于如何将新结点作为左孩子和右孩子连接到它的父

最近更新

2025年西藏职业技术学院马克思主义基本原理概.. 12页

2025年通化钢铁公司职工大学马克思主义基本原.. 12页

2025年重庆工商职业学院马克思主义基本原理概.. 13页

2025年龙州县幼儿园教师招教考试备考题库含答.. 31页

2026年中医住培带教师资理论考核题库100道【培.. 39页

2026年中医住培带教师资理论考核题库100道附答.. 39页

2026年医学微生物学习题集含答案ab卷 40页

2026年网络安全知识竞赛题库及1套完整答案 39页

2026年网络安全知识竞赛题库附答案(突破训练.. 40页

小学历史与文化知识竞赛题库100道附参考答案(.. 37页

最新煤气操作证考试题100道必考题 39页

最新全国政法队伍教育整顿知识竞赛试题库含答.. 39页

最新煤气操作证考试题100道附答案(基础题) 39页

2025年免疫抑制剂项目发展计划 52页

2025年动态心电图监测系统设备项目建议书 72页

2025年贵州省毕节地区单招职业倾向性测试题库.. 43页

2025年重庆工商职业学院单招职业倾向性考试模.. 44页

2025年阳江职业技术学院单招职业技能考试模拟.. 44页

2025广东云浮市消防救援支队招聘政府专职消防.. 43页

2025广西北海市公共就业和人才服务中心招聘编.. 43页

2025江西兴宜全过程项目咨询有限公司招聘造价.. 45页

2025湖南长沙市城市建设档案馆公开招聘普通雇.. 45页

2026北京市育英学校科学城学校招聘备考题库附.. 46页

2026年c语言基础考试题库(历年真题) 13页

2026年C语言考试题库(网校专用) 13页

2026年乌海职业技术学院单招综合素质考试题库.. 43页

2026年山东电子职业技术学院单招职业适应性测.. 44页

2026年湖南水利水电职业技术学院单招职业倾向.. 43页

六年级英语上册第一单元测试题-(含答案) 9页

刮板式花生脱壳机结构设计 39页