欢迎来到天天文库
浏览记录
ID:30760841
大小:218.00 KB
页数:8页
时间:2019-01-03
《大数据结构课程设计报告材料之线索二叉树》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案线索二叉树一目的程序从文件中读取每个结点的信息,然后建立一个二叉树。通过菜单的形式,选择不同的线索化方式,然后再对线索化的二叉树经行遍历并输出对应的结果。二需求分析1、文件的读入程序首先要从一个文件中读入结点的信息。故需建立一个文件,在文件中,给出每个结点的信息。2、菜单的实现由于需要建立两种不同的线索二叉树,故需要一个菜单,来选择需要进行的操作,并输出操作的结果。3、树的建立从文件中,读入每个结点的信息。然后建立起树,然后再对已建立的树进行相应的线索化。4、树的线索化根据菜单的选择,对已建立的树经行相对应的线索化
2、。5、输出遍历的结果对每种不同的线索化的的树,给出相对应的算法。然后,根据算法把每种遍历的结果输出。三概要设计1、主程序模块(1)主程序模块intmain(){welcome();//通过welcome()模块来让用户控制,做线索化的工作。return0;}精彩文档实用标准文案(2)可线索化单元模块—实现各种线索化的抽象数据类型;通过welcome()模块来调用每个线索化模块。2、建立二叉树的模块boolCreatBinTree();函数会根据用户输入的文件名,打开一个存储了树中每个结点的文件,且是用广义表的形式给出结点信息的
3、文件。操作结果:根据文件中广义表的形式,建立相对应的二叉树,该树的根节点为root。3、线索化的抽象数据类型voidCreatInThread();voidCreatInThread(Node*current,Node*&front)current是中序遍历下,当前遍历的结点的指针。front是中序遍历下,current结点的前驱的指针。操作结果:对建立的二叉树完成中序线索化。voidCreatPostThread();voidCreatPostThread(Node*current,Node*&front)current是后
4、续遍历下,当前遍历的结点的指针。front是后续遍历下,current结点的前驱的指针。操作结果:对已建立的二叉树完成后续线索化。4、输出结果的抽象数据类型voidInOrder()操作结果:输出中序线索二叉树的中序遍历的结果。Node*InFirst(Node*current)current是中序线索二叉树中指向一个结点的指针。操作结果:返回以current为根的树的中序遍历下的第一个结点的指针。Node*InNext(Node*current)current是中序线索二叉树中指向一个结点的指针。操作结果:返回中序遍历下,c
5、urrent结点的后继结点的指针。voidPostOrder()操作结果:输出后续线索二叉树的后续遍历结果。精彩文档实用标准文案Node*PostFirst(Node*current)current是后续线索二叉树中指向一个结点的指针。操作结果:返回以current为根的树的后续遍历下的第一个结点的指针。Node*PostNext(Node*current)current是后续线索二叉树中指向一个结点的指针。操作结果:返回后续遍历下,current结点的后继结点的指针。四详细设计二叉树中,每个结点的定义structNode{c
6、harch;//每个结点的信息域intltag;//左孩子指针标志域intrtag;//右孩子指针标志域Node*left;//左孩子Node*right;//右孩子Node*parent;//双亲结点};线索二叉树的抽象数据类型classThreadTree//线索二叉树的抽象数据类型{public:ThreadTree();//构造函数boolCreatBinTree();//从文件中读取数据并建立二叉树voidCreatInThread();//对二叉树进行中序线索化voidCreatInThread(Node*curr
7、ent,Node*&front);Node*InFirst(Node*current);//寻找中序下的第一个结点Node*InNext(Node*current);//寻找中序下当前结点的后继结点voidInOrder();//对中序线索二叉树进行遍历voidCreatPostThread();//对二叉树进行后序线索化voidCreatPostThread(Node*current,Node*&front);Node*PostFirst(Node*current);//需找后序下的第一个结点Node*PostNext(No
8、de*current);//寻找后序下当前结点的后继结点voidPostOrder();//对后序线索二叉树进行遍历voidDeleteInTree();//析构中序线索二叉树voidDeletePostTree();//析构后续线索二叉树精彩文档实用标准文案private:
此文档下载收益归作者所有