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

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 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多