数据结构二叉树操作验证实验报告_二叉树操作实验报告

2020-02-27 其他范文 下载本文

数据结构二叉树操作验证实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“二叉树操作实验报告”。

班级:计算机11-2 学号:40 姓名:朱报龙

成绩:_________

实验七 二叉树操作验证

一、实验目的⑴ 掌握二叉树的逻辑结构;

⑵ 掌握二叉树的二叉链表存储结构;

⑶ 掌握基于二叉链表存储的二叉树的遍历操作的实现。

二、实验内容

⑴ 建立一棵含有n个结点的二叉树,采用二叉链表存储;

⑵ 前序(或中序、后序)遍历该二叉树。

三、设计与编码

#include using namespace std;template cla BTree;template //***********************二叉树结点类定义********************** cla BTreeNode { friend cla BTree;T data;BTreeNode *lchild,*rchild;public: BTreeNode():lchild(NULL),rchild(NULL){} BTreeNode(T d,BTreeNode *r=NULL):data(d),lchild(l),rchild(r){}

*l=NULL,BTreeNode T getdata(){return data;} BTreeNode * getleft(){return lchild;} BTreeNode * getright(){return rchild;} };//***********************END******************************** //***********************二叉树模板类定义******************* template cla BTree { public: BTree(T a[],int n);void preorder(void visit(BTreeNode *p));static void preorder(BTreeNode * p,void visit(BTreeNode *p));//递归前序遍历

void inorder(void visit(BTreeNode *p));static void inorder(BTreeNode * p,void visit(BTreeNode *p));//递归中序遍历

void postorder(void visit(BTreeNode *p));static void postorder(BTreeNode * p,void visit(BTreeNode * p));//递归后序遍历

static void fun(BTreeNode *p){cout data;}//访问结点 protected: BTreeNode * root;private: T* a;int n;BTreeNode * build0(int i);};

//***********************建树******************************* template BTreeNode * BTree ::build0(int i)//递归建树 { BTreeNode *p;int l,r;if((i;p->data=a[i-1];l=2*i;r=2*i+1;p->lchild=build0(l);p->rchild=build0(r);return(p);} else return(NULL);}

template BTree ::BTree(T a[],int n){ this->a=a;this->n=n;root=build0(1);cout

//***********************遍历******************************* template void BTree ::preorder(void visit(BTreeNode *p))//递归前序遍历 { preorder(root,visit);cout void BTree ::preorder(BTreeNode * p,void visit(BTreeNode *p)){ if(p!=NULL){ visit(p);preorder(p->lchild,visit);preorder(p->rchild,visit);} } template void BTree ::inorder(void visit(BTreeNode *p)){ inorder(root,visit);cout void BTree ::inorder(BTreeNode * p,void visit(BTreeNode *p)){ if(p!=NULL){ inorder(p->lchild,visit);visit(p);inorder(p->rchild,visit);} } template void BTree ::postorder(void visit(BTreeNode *p))//递归后序遍历 { postorder(root,visit);cout void BTree ::postorder(BTreeNode * p,void visit(BTreeNode *p)){ if(p!=NULL){ postorder(p->lchild,visit);postorder(p->rchild,visit);visit(p);} } void main(){ char *str=“abcd e”;couts(str,6);cout >choice;cout

{cout

答:经常忘记对头结点的定义,以至于程序出错,经定义头结点,使程序正常运行。

b)程序运行的结果如何?

四、实验小结 多练习,多上机,耐心调试程序,找出错误,多总结。

数据结构二叉树的遍历实验报告

实验报告课程名:数据结构(C语言版) 实验名:二叉树的遍历 姓名:班级:学号: 时间:2014.11.03一 实验目的与要求1.掌握二叉树的存储方法 2.掌握二叉树的三种遍历方法3.实现二叉树的三种......

数据结构课程设计平衡二叉树操作

课 程 设 计 报 告课程名称 数据结构课程设计 题 目平衡二叉树操作 指导教师 设计起止日 2010-5-16 学 院 计算机学院 专 业软件工程 学生姓名 班级/学号------------......

数据结构实验报告——中序遍历二叉树

班级:380911班学号:57000211 姓名:徐敏实验报告一,实验目的:·掌握二叉树的链式存储结构; ·掌握构造二叉树的方法;·加深对二叉树的中序遍历的理解; 二,实验方法:·用递归调用算法中......

数据结构课程设计_平衡二叉树操作 副本

课 程 设 计 报 告一. 需求分析1、建立平衡二叉树并进行创建、增加、删除、调平等操作。2、设计一个实现平衡二叉树的程序,可进行创建、增加、删除、调平等操作,实现动态的输入......

数据结构平衡二叉树的操作演示

平衡二叉树操作的演示1.需求分析本程序是利用平衡二叉树,实现动态查找表的基本功能:创建表,查找、插入、删除。 具体功能:(1) 初始,平衡二叉树为空树,操作界面给出创建、查找、插入......

《数据结构二叉树操作验证实验报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
数据结构二叉树操作验证实验报告
点击下载文档
相关专题 二叉树操作实验报告 实验报告 数据结构 操作 二叉树操作实验报告 实验报告 数据结构 操作
[其他范文]相关推荐
[其他范文]热门文章
下载全文