数据结构课程设计

发布 2022-10-05 01:14:28 阅读 1548

家电商场仓库管理。

二叉排序树应用。

目录。第一章问题描述 1

第二章系统分析 1

第三章系统设计 1

第四章系统实现 1

第五章系统测试 2

第六章设计心得 20

参考文献 21

教师评语和成绩 21

以二叉排序树的二叉链表结构的有序表表示某商场家电部的库存模型。当有提货或进货时需要对该链表及时进行维护。

第二章系统分析

二叉链表结点的数据域包括家电名称、品牌、单价、数量,以单价的升序体现链表的有序性(中序遍历)。程序功能包括:初始化、创建表、插入、删除、查询、其它二叉树实现等。

正文(四号楷体)

确定怎么做?要画几张图如系统界面设计图,系统功能设计图(功能的层次结构以及各个功能之间的关系),每一功能的算法设计(可以用流程图表示),你要用什么样的存储结构存储数据,给出数据结构的具体定义。图要有编号如图3.

1。正文(四号楷体)

给出系统的主函数和每个算法的实现**。**用courier new英文字体,字体大小为10(比正文的汉字要小),段落的行间距为最小值,排版要紧凑。

如。#include<>

int main(void)bitnode,bsnode, *bintree;

bintree insert_bintree(bintree bt , recnode item);

bintree creat_bintree(int n );

bintree search(bintree bt , keytype kx);

int delete_bintree(bintree *bt, keytype kx);

int search_bintree1(bintree bt,keytype kx,bitnode **p,bitnode **pf);

void levelorder(bintree bt);/层次遍历。

void preorder (bintree bt);/先序遍历。

void inorder(bintree bt);/中序遍历。

void postorder(bintree t);/后序遍历。

void nrpreorder(bintree bt);/先序遍历二叉树的非递归算法。

void nrinorder(bintree bt);/中序遍历二叉树的非递归算法。

void nrpostorder1(bintree bt);/后序遍历二叉树的非递归算法。

int countleaf2(bintree bt);/求叶子。

int countbitnodes(bintree bt);/结点。

int countdepth(bintree bt);/深度。

bintree insert_bintree(bintree bt , recnode item)

/*在二叉排序树bt上插入关键码为kx的元素,返回指向根结点指针*/

if (bt ==null如果是空树,则插入后成为根结点*/

if(bt->

bt->lchild= insert_bintree(bt->lchild, item);/插入到左子树。

elsebt->rchild= insert_bintree(bt->rchild, item);/插入到右子树。

return bt;

bintree creat_bintree(int n )

/*从空树开始构造二叉排序树,返回指向根结点指针*/

bintree bt=null;

recnode item;

int i;

for(i=0;i

return bt ;

int search_bintree1(bintree bt , keytype kx , bitnode **p, bitnode **pf)

//查找二叉排序树中关键码值为kx的结点,*p指向待查找的结点,*pf指向待查找的结点的双亲结点,如果如果查找成功,返回1,否则返回0

*p=bt; *pf=null;/*查找失败*/

while(*p)

if((*p)->return 1 ;

if ((p)->kx) else

return 0;

int delete_bintree(bintree *bt, keytype kx)

*删除二叉排序树中关键码值为kx的结点,如果有多个,只删除第一次遇到的结点。 /果删除成功,返回1,否则返回0*/

bitnode *p=*bt, *pf=null, *pr, *prf ;

int find;

if(*bt==null) return 0;

find=search_bintree1(*bt, kx, &p, &pf);

if(!find) return 0查找失败,删除失败*/

/*第1种情况:被删除的结点是叶子结点*/

if (!p->lchild &&p->rchild)

/*被删除的结点是根结点*/

if(p ==pf->lchild) pf->lchild=null

else pf->rchild=null ;

free(p); return 1;

*第2种情况:被删除的结点的左子树为空或右子树为空*/

if( !p->lchild) /被删除的结点左子树为空*/

if(p ==pf->lchild) pf->lchild=p->rchild; /被删除的结点是双亲结点的左孩子*/

else pf->rchild=p->rchild; /被删除的结点是双亲结点的右孩子*/

free(p); return 1;

if( !p->rchild被删除的结点右子树为空*/

if(p ==pf->lchild) pf->lchild=p->lchild; /被删除的结点是双亲结点的左孩子*/

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 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 初始化时每个方格都是关闭的,一个...