「已注销」 2021-04-25 21:28 采纳率: 100%
浏览 104
已采纳

c语言二叉树的实训报告

一、实验目的

掌握二叉树的定义、基本操作,综合应用所学的知识分析问题、解决问题,学会用建立二叉树并对其进行遍历,提高实际编程能力及程序调试能力。

二、实验要求

建立二叉树,并进行遍历(前序遍历、中序遍历、后序遍历)。

三、实验方法内容

  1. 算法设计思路

二叉树的非递归遍历是用显示栈来储存二叉树的节点指针,先序遍历时,按二叉树的前序遍历的顺序访问接点,并将结点指针入栈,直到栈顶指针指向结点的左指针域为空时取出栈顶指针并删除栈顶指针,访问刚取出的指针指向的结点的右指针指向结点并将其指针入栈,如此反复执行则为非递归操作。

二叉树的递归遍历:若二叉树为空,则空操作

 先序遍历:

 (a)访问根结点;

 (b)先序遍历左子树;

 (c)先序遍历右子树。

中序遍历:

 (a)中序遍历左子树

 (b) 访问根结点;

 (c)中序遍历右子树。

后序遍历:

 (a)后序遍历左子树

 (b)后序遍历右子树

 (c)访问根结点;

层次遍历:

从二叉树第一层(根节点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点逐个访问。

  1. 算法中用到的数据结构

 (1)void CreateBiTree 以二叉链表表示二叉树,建立一棵二叉树;

 (2)void PreOrderTraverse 输出二叉树的前序遍历结果;

 (3)void InOrderTraverse 输出二叉树的中序遍历结果;

 (4)void PostOrderTraverse 输出二叉树的后序遍历结果;

 (5)int LeafNodeCount 统计二叉树的叶结点个数;

 (6)int Node Count 统计二叉树的结点个数;

 (7)int Depth 计算二叉树的深度。

 (8)int Swap 交换二叉树每个结点的左孩子和右孩子;

  1. 主要的常量变量

void CreateBiTree

void PreOrderTraverse

void InOrderTraverse

void PostOrderTraverse

int LeafNodeCount

int NodeCount

int Depth

int Swap

  • 写回答

4条回答 默认 最新

  • 关注

    你这是要写代码还是报告哦,内容这么多。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵