实验五--二叉树的建立及遍历

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五--二叉树的建立及遍历

实验五二叉树的建立及遍历

一、实验目的

1.熟悉二叉树的存贮结构及遍历方式,掌握有关算法的实现。

2.能够利用二叉树解决具体问题。

二、实验内容

1. 要求采用二叉链表作为存贮结构,树中每个结点的

数据类型设定为字符型。完成二叉树的建立、先序、中序、和后序递归遍历的操作。

2.利用栈实现非递归中序遍历二叉树。

3. 利用队列实现按层遍历二叉树。

实现提示:本算法要采用一个队列q ,先输出二叉树根结点,然后判断:若其左孩子指针非空,则将其入队列;若其右孩子指针非空,则也将其入队列。然后取队列首指针,对其所指结点继续做如上操作,直到队列空为止。因为队列的特点是先进先出,从而达到按层次顺序遍历二叉树目的。

#include

#include

#include

typedef struct BiTNode

{ char data;

struct BiTNode *lchild,*rchild; }BiTNode,* BiTree;

void creat(BiTree &T)

{

//填充创建树的代码

}

void preorder(BiTree T)

{

//填充先序遍历代码

}

void inorder(BiTree T)

{

\\填充中序遍历代码

}

void postorder(BiTree T)

{

\\填充后序遍历代码

}

main()

{

BiTree T;

creat(T);

preorder(T); printf("\n");

postorder(T);printf("\n");

inorder(T); printf("\n");

}

实验六查找

一、实验目的

1.掌握顺序查找和折半查找两种查找的算法及实现技术;了解它们各自的优缺点。

2.构造并能输出二叉排序树。

3.熟悉上述查找方法的适用范围和条件,基本思想及效率分析。

二、实验内容

⒈顺序查找

建立一个学生信息表,表中的每个数据元素是一个记录,其中的以学号作为关键字,编程进行顺序查找。如果找到,就输出该元素的位置;如果没找到,输出0。

#include

typedef struct

{ int nu;

char na[20];

int score;

}elemtype;

typedef struct

{elemtype elem[20];

int length;}SSTable;

int Search_Seq(SSTable ST,int key) {

//顺序查找

}

void main()

{ SSTable ST;

int x=1,i,key;

printf("\nEnter length:");

scanf("%d",&ST.length);

for(i=1;i<=ST.length;i++)

{printf("\nNo.%d number:",i);

scanf("%d",&ST.elem[i].nu);

printf("\n name:");

scanf("%s",&ST.elem[i].na);

printf("\n score:");

scanf("%d",&ST.elem[i].score);}

while(x==1)

{ printf("\nEnter the number to search:");

scanf("%d",&key);

i=Search_Seq(ST,key);

if(i>0)

{ printf("\nThe element is no.%d:",i);

printf("\nnu:%d,name:%s,score:%d\n",ST.elem[i].

nu,ST.elem[i].na,ST.elem[i].score);

}

else printf("\nThere is no %d",key);

printf("\n1-Continue 2-Out\n");

scanf("%d",&x);

}

}

⒉折半查找

建立一个学生信息表,表中的每个数据元素是一个记录,要求表按关键字“学号”有序,编程实现折

半查找。如果找到,就输出该元素的位置;如果没找到,输出0。

#include

typedef struct

{ int nu;

char na[20];

int score;

} elemtype;

typedef struct

{elemtype elem[20];

int length;}SSTable;

int Search_Bin(SSTable ST,int key)

{

//填加折半查找的代码

}

void main()

{

SSTable ST;

int x=1,i,key;

printf("\nEnter length:");

相关文档
最新文档