关键词不能为空

当前您在: 主页 > 英语 >

数据结构课程设计二叉连链表

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-25 09:47
tags:

-

2021年1月25日发(作者:事后)












































































.


课程设计指导书






课程名称







数据结构


课程性质







专业必修课

设计时间

设计名称

设计目的

设计要求

2010

12

1
日——
2010

12

20


设计二叉链表结构的相关函数库

使用
Microsoft Visual C++
设计二叉链表结构的相关函数库,并
能够在程序设计中调用

设计二叉链表结 构的相关函数库,以便在程序设计中调用,实现二
叉树的各种基本函数以及常用函数;并给出
1 -2
个例子,通过调用
自己的库函数来实现问题的求解。


1.

程序需求分析

完成:根据需求分析,确定各个程序功能的需求;

2.

程序总统设计

设计思路



设计过程

完成:根据程序需求,进行程序大概框架的设计;

3.

主函数设计

完成:主函数程序中设计一个菜单,并调试所用算法;

4.

其他函数设计

完成:建立二叉链表以及递归序列遍历算法

5.

系统程序完善

完成:完善整个程序细节代码的要求,进行调试。




.













































































.


计划与进度


12.1-12.2
复习对
vc++6.0
使用,了解关于二叉链表
的相关特征等。

12.3-12.4
查找有关二叉链表基本操作的算法等。

12.5-12.7
根据需求分析,确立各个函数程序功能。

12.8-12.10
根据程序需求,进行相关子函数程序的编
写。

12.11-12.13
进行主函数程序功能的设计编写。

12.14-12.16
进行对整个程序的完善。

12.17-12.18
进行程序的调试运行。

12.19-12.20
资料归档,填写相关文档。


任课教师
























.













































































.



.


课程设计报告





课程:

学号:

姓名:

班级:

教师

时间:




计算机科学与技术系
















































































.



设计名称:

设计二叉链表的相关函数库

日期:
2010


12


20



设计内容:
使用
Microsoft Visual C++
设计二叉链表结构的相关函数库,以便
在程序设计中调用

设计目的与要求:
设计二叉链表结构的相关函数库,
在程序设计中调用,
并实现二
叉树的各种基 本函数以及常用函数。


设计环境或器材、原理与说明:

器材:计算机一台

硬件环境:

处理器:
Intel core i3
内存:
1GB
硬盘空间:
320GB
显卡:
ATI Mobility Radeon
软件环境:

Windows XP,Microsoft Visual C++6.0

使用数据结构设计的一般方法步骤进行设计。



.













































































.


设计过程(步骤)和部分程序代码
(
可以加页
)


一.

题目要求




设计二叉链表结 构的相关函数库,
在程序设计中调用,并实现二叉树的各种
基本函数以及常用函数。

二.

需求分析


建立一棵二叉树:


1
)二叉树的链表结构;


2
)进行先序遍历,输出结果;


3
)进行中序遍历,输出结果;


4
)进行后序遍历,输出结果;


5
)进行层次遍历,输出结果。

三.

运行环境

Windows XP
四.

开发工具和编程语言






1.
开发工具:
Microsoft Visual C++6.0
2.
编程语言:
C
语言

五.

概要设计

1.
数据结构

typedef char datatype;
typedef struct node //
定义二叉树结点类型

{

datatype data;

struct node *lchild;

struct node *rchild;
}Btnode,* Btree;
2.
模块划分

1
.根据先序递归建立二叉树

Btree pre_creat()


.













































































.



2
.递归遍历输出函数

void preorder_btree(Btree root) //
由先根序列遍历输出二叉树

void inorder_btree(Btree root) //
由中根序列遍历输出二叉树

void postorder_btree(Btree root) //
由后根序列遍历输出二叉树


3
.层次遍历输出算法

void level_btree(Btree root) //
层次遍历输出二叉树

六.

详细设计

1
.创建二叉树的实现

Btree pre_creat() //
使用先根序列建立二叉树,返回指针

{

Btree t;

char ch;

fflush(stdin);

scanf(
输入一个结点数据


if(ch=='@')


return 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(
输出结点值



preorder_btree(p->lchild); //
输出左子树



preorder_btree(p->rchild); //
输出右子树


}
}
void inorder_btree(Btree root) //
由中根序列输出二叉树

{


.













































































.



Btree p=root;

if(p!=NULL)

{


inorder_btree(p->lchild); //
输出左子树


printf(
输出结点值



inorder_btree(p->rchild); //
输出右子树


}
}
void postorder_btree(Btree root) //
由后根序序列输出二叉树

{

Btree p=root;

if(p!=NULL)

{


postorder_btree(p->lchild); //
输出左子树



postorder_btree(p->rchild); //
输出右子树

printf(
输出结点值


}
}
3.
层次遍历输出算法





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 ++;


.

-


-


-


-


-


-


-


-



本文更新与2021-01-25 09:47,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/565159.html

数据结构课程设计二叉连链表的相关文章