「已注销」 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 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!