二叉树的类定义_二叉树定义

其他范文 时间:2020-02-27 03:32:54 收藏本文下载本文
【www.daodoc.com - 其他范文】

二叉树的类定义由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“二叉树定义”。

实验一、二叉树的类定义

程序说明

1、改程序用二叉链存储结构将其生成一棵二叉树;

2、分别用三种遍历算法将二叉树的遍历序列输出;

3、用括号表示法输出二叉树。

二叉树的形状

A

程序代码

#include “stdafx.h” #include using std::cin;using std::cout;using std::endl;using namespace std;typedef struct CZYP_BTNode {

char data;

struct CZYP_BTNode *left;

//左孩子指针

struct CZYP_BTNode *right;// 右孩子指针

} *BiTree;

void CreateBiTree(BiTree &T){

// 在先序遍历二叉树的过程中输入二叉树的“先序字符串”,// 建立根指针为 T的二叉链表存储结构。在先序字符串中,// 字符'#'表示空树,其它字母字符为结点的数据元素

char ch;

cin >> ch;

if(ch=='#')

{

T=NULL;// 建空树

} else {

T = new CZYP_BTNode;

// “访问”操作为生成根结点

T->data = ch;

CreateBiTree(T->left);

// 递归建(遍历)左子树

CreateBiTree(T->right);

// 递归建(遍历)右子树

}

}

//先序遍历以T为根指针的二叉树 void PreOrder(BiTree &T){

if(T)

{

// T=NULL时,二叉树为空树,不做任何操作

coutdata

PreOrder(T->left);

// 先序遍历左子树

PreOrder(T->right);

// 先序遍历右子树

} }

//中序遍历以T为根指针的二叉树 void InOrder(BiTree &T){

if(T){

// T=NULL时,二叉树为空树,不做任何操作

InOrder(T->left);// 先序遍历左子树

coutdata

InOrder(T->right);// 先序遍历右子树

} } //后序遍历以T为根指针的二叉树 void PostOrder(BiTree &T){

if(T){

// T=NULL时,二叉树为空树,不做任何操作

PostOrder(T->left);// 先序遍历左子树

PostOrder(T->right);// 先序遍历右子树

coutdata

} } //用括号表示法输出二叉树 void DispBTree(BiTree &bt){ if(bt!=NULL){

coutdata;

if(bt->right!=NULL||bt->left!=NULL)

{

cout

DispBTree(bt->left);

if(bt->right!=NULL)cout

DispBTree(bt->right);

cout

} } }

int main(){

cout

BiTree T;

CreateBiTree(T);

cout

PreOrder(T);

cout

InOrder(T);

cout

PostOrder(T);

cout

return(0);}

心得体会

在这次实验中,我花了很多的时间。最重要的体会就是我的知识却是很少。在做这次试验之前我仔细的看了一遍树的三种遍历的伪代码。对程序中用到的递归思想有了更深刻的认识,并且我也借鉴了老师PPT上的很多程序的写法。再者就是我从网上找了一些二叉树的写法,然后通过自己修改、调试。在这里我想说一下,我调试的时候很多错误都不知道从哪里找,后来我就把出现的错误信息输入到baidu里,事实证明这样确实很有效。终于没有错误了。Happy!!

今天调试了一上午,虽说很累,但是我确确实实感到学到了很多知识。不足之处

这个程序的int isEmpty()函数没有实现,需要改天写出来。

一、给定二叉树如下图所示,编程完成下列要求:

1、用二叉链存储结构将其生成一棵二叉树;

2、分别用三种遍历算法将二叉树的遍历序列输出;

3、用括号表示法输出二叉树。G D B E A

C F H 上面是个图。。由于我分不多了,所以不是很多。但是我很想学这方面知识,到时我有分了再给你叫啊。高手帮忙啊。问题补充:

我把图详细说下。A是树根;B、C分别是A的左右孩子;D、E分别是B的左右孩子;G是D的右孩子;F是C的右孩子;H是F的左孩子。相信我已经表达清楚了吧。谢谢各位大虾了。

VC类定义

VC++怎样定义类对象如果你定义了一个类(假设是A)那么声明一个A的对象的方法就是:A a;// a 就是一个A的对象A *a;// a 就是一个A的对象的指针A a[N];// a 就是一个A的对象的数组......

定义银行类

在定义银行类时,若取钱数大于余额则作为异常处理(InsufficientFundsException).思路:产生异常的条件是余额少于取额, 因此是否抛出异常要判断条件取钱是withdrawal([wið'dr......

类声明和定义

如何组织编写模板程序 前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, W......

实验报告:二叉树

实验报告 二叉树一 实验目的1、进一步掌握指针变量,动态变量的含义;2、掌握二叉树的结构特性以及各种存储结构的特点及适用范围。3、掌握用指针类型描述、访问和处理二叉树的......

二叉树遍历

目录一 设计思想 ..........................................2 1递归遍历二叉树算法思想:.......................................2 2非递归遍历二叉树算法思想:.................

下载二叉树的类定义word格式文档
下载二叉树的类定义.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

热门文章
点击下载本文