数据结构二叉树的基本操作实验报告
“数据结构二叉树的基本操作实验报告”相关的资料有哪些?“数据结构二叉树的基本操作实验报告”相关的范文有哪些?怎么写?下面是小编为您精心整理的“数据结构二叉树的基本操作实验报告”相关范文大全或资料大全,欢迎大家分享。
数据结构上机实验报告-二叉树
数据结构上机实验报告
二叉树问题
陈冠豪
2010210501
0101015
二O一O年5月26号
验的目建一棵立二树叉要,分别求递用归和递非方法实归二现 叉树的先、序序中和序遍后历。
实现代码:
#ifndef TREE_H #define TREE_H #include <stdio.h> #include <malloc.h> #include <stack> #include <queue> #include <assert.h> using namespace std; typedefintElemType; typedef struct treeT { ElemType key; struct treeT* left; struct treeT* right; }treeT, *pTreeT;
static void visit(pTreeT root) { if (NULL != root) { printf(" %d\n", root->key); } } static pTreeT BT_MakeNode(E
数据结构实验二叉树
实验六:二叉树及其应用
一、实验目的
树是数据结构中应用极为广泛的非线性结构,本单元的实验达到熟悉二叉树的存储结构的特性,以及如何应用树结构解决具体问题。
二、问题描述
首先,掌握二叉树的各种存储结构和熟悉对二叉树的基本操作。其次,以二叉树表示算术表达式的基础上,设计一个十进制的四则运算的计算器。 如算术表达式:a+b*(c-d)-e/f
三、实验要求
如果利用完全二叉树的性质和二叉链表结构建立一棵二叉树,分别计算统计叶子结点的个数。求二叉树的深度。十进制的四则运算的计算器可以接收用户来自键盘的输入。由输入的表达式字符串动态生成算术表达式所对应的二叉树。自动完成求值运算和输出结果。
四、实验环境
PC微机
DOS操作系统或 Windows 操作系统
Turbo C 程序集成环境或 Visual C++ 程序集成环境 1、根据二叉树的各种存储结构建立二叉树;
2、设计求叶子结点个数算法和树的深度算法;
3、根据表达式建立相应的二叉树,生成表达式树的模块; 4、根据表达式树,求出表达式值,生成求值模块; 5、程序运行效果,测试数据分析算法。
五、实验步骤
六、测试数据
1、输入数据:2.2*(3.1+1.20)-7.5/3
正确结果:6.9
二叉树基本操作--实验报告
实验报告
一、实验目的
1、熟悉二叉树树的基本操作。
2、掌握二叉树的实现以及实际应用。
3、加深二叉树的理解,逐步培养解决实际问题的编程能力。
二、实验环境
1台WINDOWS环境的PC机,装有Visual C++ 6.0。
三、实验内容
【问题描述】 现需要编写一套二叉树的操作函数,以便用户能够方便的利用这些函数来实现自己的应用。其中操作函数包括:
1> 创建二叉树CreateBTNode(*b,*str):根据二叉树括号表示法的字符串*str生成对应的链
式存储结构。
2> 输出二叉树DispBTNode(*b):以括号表示法输出一棵二叉树。
3> 查找结点FindNode(*b,x):在二叉树b中寻找data域值为x的结点,并返回指向该结点
的指针。
4> 求高度BTNodeDepth(*b):求二叉树b的高度。若二叉树为空,则其高度为0;否则,其
高度等于左子树与右子树中的最大高度加l。 5> 求二叉树的结点个数NodesCount(BTNode *b) 6> 先序遍历的递归算法:void PreOrder(BTNode *b) 7> 中序遍历的递归算法:void InOrder(BTNode *b) 8> 后序遍历递归算法:
二叉树基本操作--实验报告
实验报告
一、实验目的
1、熟悉二叉树树的基本操作。
2、掌握二叉树的实现以及实际应用。
3、加深二叉树的理解,逐步培养解决实际问题的编程能力。
二、实验环境
1台WINDOWS环境的PC机,装有Visual C++ 6.0。
三、实验内容
【问题描述】 现需要编写一套二叉树的操作函数,以便用户能够方便的利用这些函数来实现自己的应用。其中操作函数包括:
1> 创建二叉树CreateBTNode(*b,*str):根据二叉树括号表示法的字符串*str生成对应的链
式存储结构。
2> 输出二叉树DispBTNode(*b):以括号表示法输出一棵二叉树。
3> 查找结点FindNode(*b,x):在二叉树b中寻找data域值为x的结点,并返回指向该结点
的指针。
4> 求高度BTNodeDepth(*b):求二叉树b的高度。若二叉树为空,则其高度为0;否则,其
高度等于左子树与右子树中的最大高度加l。 5> 求二叉树的结点个数NodesCount(BTNode *b) 6> 先序遍历的递归算法:void PreOrder(BTNode *b) 7> 中序遍历的递归算法:void InOrder(BTNode *b) 8> 后序遍历递归算法:
数据结构 - 二叉树基本操作源代码
数据结构二叉树基本操作
(1).
// 对二叉树的基本操作的类模板封装
//------------------------------------------------------------------------------------------------------------------------
#include //------------------------------------------------------------------------------------------------------------------------ //定义二叉树的结点类型BTNode,其中包含数据域、左孩子,右孩子结点。 template T data ; //数据域 BTNode* lchild; //指向左子树的指针 BTNode* rchild; //指向右子树的指针 }; //-------------------------------------------------
广工数据结构实验报告平衡二叉树
数据结构实验报告
题目:平衡二叉树
学 院 专 业 年级班别 学 号 学生姓名 指导教师
2015年7月1日
1.题目:采用字符类型为整型类型和链式存储结构,实现抽象数据类型BTree。 ADT BTree{
数据对象:D={ai | ai∈ElemSet, i=1,2,...,n, n≥0 } 数据关系:R1={ |ai-1, ai∈D, i=2,...,n } 基本操作: Adj_balance(T)
操作结果:创建平衡二叉树。 InsertAVL(T,search,taller)
初始条件:二叉树T已存在。 操作结果:增加新结点。 SetAVL(T,search,taller)
数据结构--线性表实验报告+二叉树实验报告
线性表实验报告+二叉树实验报告
实验报告
班级: 学号: 姓名: 日期:
1. 实验题目
编辑一个程序,用来演示线性表的建立、插入、删除等操作。
2. 需求分析
本演示程序在Microsoft Visual C++ 6.0环境下编写调试,完成线性表的生成、任意位置的插入、删除等。
(1)输入的形式和输入的范围:执行插入操作时,需要输入插入位置和元素的值;执行删除操作时,需要输入待删除元素的位置。在所有输入中,元素的值都是由整数、字符数组和字符数组组成的。
(2)输出的形式:在所有操作中都要求显示相关操作是否正确以及操作后线性表的内容。其中删除操作完成后,要显示删除后所剩的元素的值。
(3)程序所能达到的功能:完成线性表的生成、插入、删除操作。
3. 概要设计
(1)为了实现上述程序功能,需要定义线性表的数据结构。线性表单个元素的结构如图1.1所示。
图1.1 线性表元素的数据结构
(2)本程序包含6个函数: ①主函数main()。
②初始化线性表函数creat()。 ③插入元素函数insert()。 ④删除元素函数del()。
线性表实验报告+二叉树实验报告
各函数间的关系如图1.2所示
数据结构 树和二叉树习题
第六章 习题
一、选择题
1、在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( )个 A 、4 B、5 C、6 D、 7
2、假定在一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为( )个。
A、 15 B、16 C、17 D、47
3、假定一棵三叉树的结点数为50,则它的最小高度为( ) A、 3 B、4 C、5 D、6
4、在一棵二叉树上第5层的结点数最多为( ) A、8 B、 16 C、 15 D、32
5、用顺序存储方式将完全二叉树中的所有结点逐层存放在数组R[1..n]中,结点R[I]若有子树,则左子树是结点( )
A、R[2I+1] B、R[2I] C、R[I/2] D、R[2I-1] 6、在一棵具有k层的满三叉树中,结点总数为( ) A、(3k-1)/2 B、3k-1 C、(3k-1)/3 D、3k
7、由带权为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为(
二叉树实验报告
山东工商学院
《数据结构》实验指导及报告书
2012 / 2013 学年
姓名: 学号: 班级: 指导教师:
Xx学院
2012年11月25日
第 一 学期
实验三 二叉树
一、实验目的
1、掌握二叉树的基本特性
2、掌握二叉树的先序、中序、后序的递归遍历算法 3、理解二叉树的先序、中序、后序的非递归遍历算法
4、通过求二叉树的深度、叶子结点数和层序遍历等算法,理解二叉树的基本特性
二、实验预习
说明以下概念
1、二叉树:是另一种树型结构,它的特点是每个结点至多只有两棵子树,并且二叉树有左右之分,其次序不能任意颠倒。 2、递归遍历:
1、 非递归遍历:
4、层序遍历:
三、实验内容和要求
1、阅读并运行下面程序,根据输入写出运行结果,并画出二叉树的形态。 #include #define MAX 20 typedef struct BTNode{ /*节点结构声明*/ char data ; /*节点数据*/ struct BTNode *lchild; struct BTNode *rchild ;
数据结构二叉排序树实验报告
实验报告
课程名:数据结构(C语言版) 实验名:二叉排序树 姓名: 班级: 学号:
撰写时间:2014.12.18
一 实验目的与要求
1. 掌握二叉排序树上进行插入和删除的操作 2. 利用 C 语言实现该操作 二 实验内容
? 对于一个线形表, 利用不断插入的方法, 建立起一株二叉排序树
? 从该二叉排序树中删除一个叶子节点, 一个只有一个子树的非叶子节,一个有两个子树的非叶子节点。
三 实验结果与分析
#include //二叉查找树结点描述 typedef int KeyType; typedef struct Node { KeyType key; //关键字 struct Node * left; //左孩子指针 struct Node * right; //右孩子指针 struct Node * parent; //指向父节点指针 }Node,*PNode; //往二叉查找树中插入结点 //插入的话,可能要改变根结点的地址,所以传的是二级指针 void inseart(PNode * root,Ke