1 / 14
文档名称:

数据结构优质课程设计二叉连链表.docx

格式:docx   大小:129KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构优质课程设计二叉连链表.docx

上传人:非学无以广才 2022/8/14 文件大小:129 KB

下载得到文件列表

数据结构优质课程设计二叉连链表.docx

相关文档

文档介绍

文档介绍:课程设计指引书
姓 名
学 号
班 级
课程名称
数据构造
课程性质
专业必修课
设计时间
年 12 月 1日—— 年 12月 20日
设计名称
设计二叉链表构造旳有关函数库
设计目旳
使用Meturn NULL; //空结点
else
{
t=(Btnode *)malloc(sizeof(Btnode)); //申请结点空间,根节点
t->data=ch;
t->lchild=pre_creat(); //生成左子树
t->rchild=pre_creat(); //生成右子树
}
return t;
}
2.先序、中序、后序递归遍历输出算法
void preorder_btree(Btree root) //由先根序列输出二叉树
{
Btree p=root;
if(p!=NULL)
{
printf("%3c",p->data); //输出结点值
preorder_btree(p->lchild); //输出左子树
preorder_btree(p->rchild); //输出右子树
}
}
void inorder_btree(Btree root) //由中根序列输出二叉树
{
Btree p=root;
if(p!=NULL)
{
inorder_btree(p->lchild); //输出左子树
printf("%3c",p->data); //输出结点值
inorder_btree(p->rchild); //输出右子树
}
}
void postorder_btree(Btree root) //由后根序序列输出二叉树
{
Btree p=root;
if(p!=NULL)
{
postorder_btree(p->lchild); //输出左子树
postorder_btree(p->rchild); //输出右子树
printf("%3c",p->data); //输出结点值
}
}


void level_btree(Btree root) //层次遍历输出二叉树
{
Btree p;
p=(Btnode *)malloc(sizeof(Btnode)); //申请一种新结点
p->data='@';
p->lchild=p->rchild=NULL; //为新结点赋初值
int front, rear;
front=rear=0; //置空队列
p=root; //工作结点指向根节点
if(p!=NULL)
{
rear ++;
Q[rear]=p; //结点不为空就入队
if(rear==1)
{
front=1;
Q[front]=p; //根节点入队作为队列头结点
rear ++;
}
while(front!=rear)
{
p=Q[front]; //队头结点出队
front ++;
printf("%3c",p->data);
if(p->lchild!=NULL)
{
Q[rear]=p->lchild;
rear ++;
}
if(p->rchild!=NULL)
{
Q[rear]=p->rchild;
rear ++;
}
}
}
}
这三个函数实现了二叉树旳递归遍历措施。先序思想是先根、后左孩子、再右孩子,中序遍历思想是先左孩子、后根、再右孩子,后序是先左孩子、后右孩子、再根。

int main()
{
Btree boot;
boot=(Btnode *)malloc(sizeof(Btnode));
boot=NULL;
int x;
do
{
printf("___________________________