数据结构课程设计

发布 2022-10-05 01:15:28 阅读 5123

完整的二叉树结构及测试。

二叉树的完整实现以及测试,实现对二叉树的基本运算,如建立,遍历,查询及二叉树的运用实例等。

既然是实现其基本功能,则界面需要有选项,每一个选项对应一个功能,以便用户一一测试运算。进入界面时应该有一个菜单界面,提供各个功能,用户可以通过选择实现每一个运算的测试。

先写好每一个功能函数的**,放在主函数的前面。再写好主函数的**,在主函数中通过switch…..case….相应的调用与用户选择一致的函数,从而测试每一个功能。

系统界面设计图如下所示:

用链式存储结构存储数据,其定义如下:

typedef int datatype;

typedef struct bitnode

datatype data;

struct bitnode *lchild,*rchild;

bitnode,*bitree;

**如下:#include<>

#include<>

#define maxsize 100

#define n 10

typedef int datatype;

datatype nil =0;

typedef struct bitnode

datatype data;

struct bitnode *lchild,*rchild;

bitnode,*bitree;

/初始化二叉树。

bitree initiatehead()

bitnode *bt;

bt=(bitnode*)malloc(sizeof(bitnode));

bt->lchild=null;

bt->rchild=null;

return bt;

/1 建立二叉树。

void creatbitree(bitree *t)

datatype ch;

scanf("%d",&ch);

if(ch==nil)

t=null;

else/2 查找值为x的结点。

bitree search(bitree bt,datatype x)

bitree p;

if(bt==null)

return null;

else if(bt->data==x)

return bt;else

/先序递归遍历此二叉树。

void finorder(bitree t)

if(t)/中序递归遍历此二叉树。

void inorder(bitree t)

if(t)/后序递归遍历此二叉树。

void linorder(bitree t)

if(t)/先序非递归遍历此二叉树。

void nrpreorder(bitree bt)

bitnode *stack[maxsize];

bitnode *p;

int top=-1;

if(bt==null)

return ;

p=bt;while(!(p==null&&top==-1))

if(top<0)

return;else

/中序非递归遍历此二叉树。

void nrinorder1(bitree bt)

bitnode *stack[maxsize];

bitnode *p;

int top=-1;

if(bt==null)

return;

p=bt;while(!(p==null&&top==-1))

if(top<0)

return;else

/后序非递归遍历此二叉树。

void nrpostorder(bitree bt)

bitnode *p=bt, *stack[maxsize];

int tag[maxsize];

int top=-1;

doif(top>=0)

} while((p!=null)||top>=0));

/3 遍历此二叉树。

void bianli (bitree t)

int choice,a,b;

printf("请选择遍历的方法");

printf("*1---递归遍历***n");

printf("*2---非递归遍历***n");

scanf("%d",&choice);

switch(choice)

break;

case 2:

printf("你选择的是非递归遍历");

printf("请再选择遍历的方法");

printf("*1---先序非递归遍历**");

printf("*2---中序非递归遍历**");

printf("*3---后序非递归遍历**");

scanf("%d",&b);

switch(b)

break;

printf("");

int visit(bitnode *bn)

return bn->data;

/4 按层次遍历二叉树。

void levelorder(bitree bt)

bitnode *queue[maxsize];

int front,rear;

if(bt==null)

return;

front=-1;

rear=0;

queue[rear]=bt;

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...