数据结构 c语言版 实验报告 南昌航空大学,《数据结构》实验报告【DOC精选】.doc...

《数据结构》实验报告【DOC精选】

南昌航空大学

课程名称: 数据结构

准考证号: 036811300371

姓 名: 刘林生

指导老师: 廖丽老师

二叉树的建立及输出实验目的

熟悉二叉链表表示的二叉树结构及其递归遍历,掌握建立二叉链表要领,深入理解递归遍历二叉链表的执行路径。

实验内容

(1)建立一颗二叉链表表示的二叉树;

(2)对其进行前序,中序,后序输出。

实验要求

先将二叉树通过加入虚节点的方式使其完全化,然后按层将其输入。可以用二叉树中不会出现字符表示虚节点例如@,另一二叉树中不会出现的字符表示输入序列结束例如#。如下二叉树须输入序列a@b@@@c# 。或以广义表的形式输入二叉树的节点。按先序,中序,后序序列将其遍历输出。

五、 实验步骤

//A.Header Files Source Files bitree.cpp

#include"bitree.h"

int main(int argc, char* argv[])

{

int array[] = {5,6,3,7,67,1,24,8,21,16,78,9};

Tree tr(array, sizeof(array)/sizeof(array[0]));

tr.traverse();

return 0;

}

//B. Header Files bitree.h

#include

#include

//here delete #include

using namespace std;

typedef int telemtype;

struct bitnode //change to typedef struct bitnode and it will be

//'typedef ' : ignored on left of 'struct bitnode' when no variable is declared at last it will be ok

{

bitnode* lchild;

bitnode* rchild;

telemtype data;

bitnode(int e=0, bitnode* left=NULL, bitnode* right=NULL)

{

data = e;

lchild = left;

rchild = right;

}

};

class Tree

{

public:

Tree()

{

root = NULL;

}

Tree(int array[], int size);

~Tree();

void traverse();

void postTraverse();

void recur_postTraverse(bitnode* cur);

void preTraverse();

void recur_preTraverse(bitnode* cur);

void inTraverse();

void recur_inTraverse(bitnode* cur);

private:

Tree(const Tree& t);

Tree& operator=(const Tree& t);

bitnode* createTree(int array[], int size);

void destroyTree(bitnode* cur);

private:

bitnode* root;

};

Tree::Tree(int array[], int size)

{

if ((array==NULL)||(size<=0))

root = NULL;

else

root = createTree(array, size);

}

//create a tree

bitnode* Tree::createTree(int array[], int size)

{

if ((array==NULL)||(size<=0))

return NULL;

int mid=size/2;

bitnode* cur=new bitnode(array[mid]);

cur->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值