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

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 精通抖音评论点赞接口的来!需要开发
  • ¥15 VB.NET2022如何生成发布成exe文件
  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云