数据结构与算法 树结构的操作

发布 2021-05-02 18:06:28 阅读 7022

《数据结构与算法分析》

课程实验报告。

实验目的】1. 理解树形结构的逻辑和存储特点。

2. 掌握二叉树的遍历递归算法。

实验内容】1. 用递归算法实现二叉树的建立,并能输出遍历序列结果(先序、中序、后序任意一种即可)

2. 完成二叉树的应用:统计叶子结点数目,输出叶子结点,求二叉树深度,交换每个结点的左右子树。(任选其中两个)

实验方式】个人实验。

实验设备与环境】

pc机,windows xp操作系统,vc++6.0开发环境。

数据结构及函数定义】

1)类的定义:类的数据成员,成员函数。

(2)主函数main() 实现初始化操作,完成对子函数的调用。

(3)子函数。

测试数据与实验结果】

请用截图的方式展示实验结果,并辅以必要的文字说明)

源程序清单】

请附上源程序)

#include<>

#include<>

struct tree

int data;

struct tree *lchild;

struct tree *rchild;

void main()

struct tree *creat();

struct tree *exchange(struct tree *)

void output(struct tree *)

int deep(struct tree *)

struct tree *rout;

int i;

rout=creat();

cout<<"树的先序遍历为";

output(rout);

i=deep(rout);

rout=exchange(rout);

cout

cout

struct tree *creat()

struct tree *rout;

int i;

cout<<"请输入节点数据:";

cin>>i;

if(i==0)

return null;

else rout=(struct tree *)malloc(sizeof(struct tree));

rout->data=i;

rout->lchild=creat();

rout->rchild=creat();

return rout;}

void output(struct tree *rout)

if(rout==null) ;

elsestruct tree *exchange(struct tree *rout)

struct tree *t;

if(!(rout->lchild==null&&rout->rchild==null))

t=rout->lchild;rout->lchild=rout->rchild;rout->rchild=t;}

return rout;

int deep(struct tree *rout)

int i,j,i;

if(rout==null)i=0;

else return i;

数据结构与算法 图结构的操作

数据结构与算法分析 课程实验报告。实验目的 1.理解图形结构的逻辑和存储特点。2.掌握图形结构遍历递归算法。实验内容 1.用邻接矩阵或者邻接表存储一个图形结构。2.采用深度或者广度优先搜索算法,遍历一个图,并输出遍历结果。实验方式 个人实验。实验设备与环境 pc机,windows xp操作系统,vc...

数据结构与算法

本章知识要点 算法的基本概念 数据结构的定义 线性表的定义和存储 树 二叉树的定义和存储 查找与排序算法。算法 algorithm 是一组有穷的规则,规定了解决某一特定类型问题的一系列运算,是对解题方 与完整的描述。算法是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中...

算法与数据结构

学院专业姓名学号。实验1 线性表的操作 12学时 问题描述 假设一个班级内有n个学生,定义一个学生类和一个班级类。学生类中包括学号 姓名 性别 年龄 专业等属性 班级类包括一个学生对象链表。定义如下 class student class myclass student stu head 链表表头指...