二叉树的基本操作实现及其应用
11页1、1目录一、实验目的 .1二、实验内容 .1三、实验步骤 .1、数据结构与核心算法的设计描述 .1、函数调用及主函数设计 .2 程序调试及运行结果分析 .3 实验总结 .3四、主要算法流程图及程序清单 .31、主要算法流程图: .32、程序清单 .42实验 三 二叉树的基本操作实现及其应用一、实验目的1熟悉二叉树结点的结构和对二叉树的基本操作。2掌握对二叉树每一种操作的具体实现。3学会利用递归方法编写对二叉树这种递归数据结构进行处理的算法。4.会用二叉树解决简单的实际问题。二、实验内容 题目一 设计程序实现二叉树结点的类型定义和对二叉树的基本操作。该程序包括二叉树结构类型以及每一种操作的具体的函数定义和主函数。1 按先序次序建立一个二叉树 ,2 按(A:先序 B:中序 C:后序 )遍历输出二叉树的所有结点 以上比做,以下选做3 求二叉树中所有结点数 4 求二叉树的深度 三、实验步骤、数据结构与核心算法的设计描述1) 二叉树结构类型定义:typedef struct BiTNodechar data;struct BiTNode *lchild,*rchild;BiTNode,*BiTre
2、e;2)队列节点定义:typedef struct QNode BiTree bt;struct QNode *next;3QNode,*QueuePtr; 3)队列类型定义:struct LinkQueue 队列类型定义QueuePtr front; /队头指针QueuePtr rear; /队尾指针;4) 初始化二叉树,即把二叉树置空:void BiTreeInit (BiTree &T)5) 按先序建立一个二叉树:Status CreateBiTree ( BiTree &T ) 按先序次序输入二叉树中结点值(一个字符) ,空格字符表示空树。构造二叉链表表示的二叉树 T。6) Status PreOrderTraverse ( BiTree T)/先序遍历二叉树7) Status InOrderTraverse ( BiTree T) / 中序遍历二叉树8) Status PostOrderTraverse ( BiTree T) / 后序遍历二叉树9) void out(BiTree T) /从左到右,从上到下遍历二叉树10)void nodesum(BiTree &T) /二
3、叉树节点总数11)int Depth (BiTree T )/ 返回二叉树的深度12)void InitQueue ( LinkQueue &Q )/ 构造一个空队列 Q13)EnQueue ( LinkQueue &Q,BiTree &e )/ 进队14)DeQueue ( LinkQueue &Q, BiTree &e )/出队15)Status emptyQueue(LinkQueue &Q) /判断队列是否空、函数调用及主函数设计4 程序调试及运行结果分析1.先序建立二叉树时,应用 getchar()函数,从流中读入字符;2.上下左右依次遍历二叉树时,判断结束的条件是栈是否空;3.队列节点的数据域应定义成二叉树型的;4.求节点总数时,计数 n 应定义成全局变量。5.求深度的 k 也应是全局变量。 实验总结以前只是学一些零碎的东西,通过做实验,让我们把这些零碎的东西拼接成一个小小的程序。让我们在做实验时对整体的把握得以提高。这次实验既培养了自己的动手能力,又加深了对知识的认识,同时使自己有了解决问题的思路和方法。在这次实验的过程中,我知道了一些如何查找错误的方法,掌握了一些关于如
4、何调试来解决自己的代码编译错的技巧。自己在以后的学习过程中加强锻炼,多写写,多练练,把书本上的知识应用到主 函 数先序建立二叉树先序遍历二叉树中序遍历二叉树后序遍历二叉树上下左右依次遍历二叉树总结点数其他键退出二叉树深度5实际问题中去,达到所学以用。通过这次实验,我对二叉树更加了解,还有跟队列的结合,是我对知识有更深的应用。四、主要算法流程图及程序清单1、主要算法流程图:否否否结 束队头元素出队T-lchild是否空T-lchild 入队输出 T-lchild-dataT-rchild是否空是T-rchild 入队输出 T-lchild-data是开 始构造空队列,T 入队,输出 T-data栈是否空是6从上到下,从左到右遍历二叉树图2、程序清单#include#include#include#define Status int#define OVERFLOW 1#define OK 1#define ERROR 0int n=0,k;typedef struct BiTNode /二叉树节点定义char data;struct BiTNode *lchild,*rchild;BiTN
《二叉树的基本操作实现及其应用》由会员第***分享,可在线阅读,更多相关《二叉树的基本操作实现及其应用》请在金锄头文库上搜索。
2022-08-19 15页
2022-12-02 37页
2023-03-06 16页
2022-12-19 3页
2022-12-15 5页
2022-11-20 5页
2023-01-31 3页
2023-04-11 11页
2022-11-03 21页
2023-11-26 6页