数据结构课程设计报告格式new

发布 2019-08-13 22:19:17 阅读 8793

山东建筑大学计算机科学与技术学院。

课程设计说明书。

题目: 哈夫曼编、译码器。

算术表达式求值演示。

课程: 数据结构课程设计。

院 (部): 理学院。

专业: 信息与计算科学。

班级: 信计0x1

学生姓名: xx

学号: 2006121***

指导教师: ***

完成日期: 2008-7-4

目录。课程设计任务书一 i

课程设计任务书二 ii

题目一 1一、问题描述 1

二、基本要求 1

三、算法思想 1

四、数据结构 1

五、模块划分 1

六、源程序 2

七、测试数据 5

八、测试情况 5

题目二 6一、问题描述 6

二、基本要求 6

三、算法思想 6

四、数据结构 6

五、模块划分 6

六、源程序 6

七、测试数据 15

八、测试情况 15

结论 16参考文献 17

课程设计指导教师评语 18

山东建筑大学计算机科学与技术学院。

课程设计任务书一。

指导教师(签字教研室主任(签字)

山东建筑大学计算机科学与技术学院。

指导教师(签字教研室主任(签字)

二、基本要求:一个完整的系统应具有以下功能。

四、数据结构:

typedef struct char bits[n]

1、 函数:typedef struct{} huffman huffmancode main()

2、函数之间的调用关系 main函数调用其他函数。

#define n 7 /*叶子数目,需要时更改此值即可*/

#define m 2*n-1 /*节点总数*/

typedef struct

char bits[n];/编码存储,位串*/

int start; /编码在位串中的位置*/

codetype;

typedef struct

float weight;

int lchild,rchild,parent;

hufmtree;

void huffman(tree1)

hufmtree tree1;

int i,j,p1,p2;

float small1,small2,f;

hufmtree *tree;

tree=tree1;

for(i=0;i{

tree[i].parent=0;

tree[i].lchild=0;

tree[i].rchild=0;

tree[i].weight=0.0;

printf("please input a possible data weight:");输入信源数据*/

for(i=0;i{

scanf("%f",&f);

tree[i].weight=f;

for(i=n;i{

p1=0,p2=0;

small1=1;small2=1;

for(j=0;j<=i-1;j++)从所有的节点中,选出两个权值最小的根节点*/

if(tree[j].parent==0) /parent值为0,则显示根节点,否则便是非根节点*/

if(tree[j].weight{

small2=small1; /改变最小权,次小权及对应的位置*/

small1=tree[j].weight;

p2=p1; /p1、p2记住这两个根节点在向量tree中的下标*/

p1=j;

else if(tree[j].weight{

small2=tree[j].weight;/*次小权及位置*/

p2=j;

tree[p1].parent=i+1; /节点分量与下标之间差值为1*/

tree[p2].parent=i+1; /节点的标号i+1*/

tree[i].lchild=p1+1; /最小值根节点是新节点的左孩子,分量标号是其下标加1*/

tree[i].rchild=p2+1; /次小权根节点是新节点的右孩子*/

tree[i].weight=tree[p1].weight+tree[p2].weight;

/*huffmantree()*

void huffmancode(code1,tree1) /根据哈夫曼树求出哈夫曼编码*/

codetype code1;求出的哈夫曼编码所在*/

hufmtree tree1;已知的哈夫曼树*/

int i,j,c,p;

codetype cd;/*缓冲变量*/

codetype *code;

hufmtree *tree;

code=code1;

tree=tree1;

for(i=0;i{

c=i+1; /从叶节点出发向上回溯*/

p=tree[i].parent;/*tree[p-1]是tree[i]的双亲*/

while(p!=0)

if(tree[p-1].lchild==c)

0'; tree[i]是左子树。生成**'0'*/

else 1'; 否则tree[i]是右子树。生成**'1'*/

c=p; p=tree[p-1].parent;

code[i]=cd; /第i+1个字符的编码存入code[i]*/

/*huffmancode*/

#include ""

main()

int k1,k2;

hufmtree tree_fina[m];

hufmtree *p11=tree_fina;

codetype code_fina[n];

codetype *p21=code_fina;

huffman(p11); 建立huffman树*/

huffmancode(p21,p11); haffman码*/

for(k1=0;k1

数据结构课程设计报告

所有的限制,几乎都是从自己的内心开始的。一 前沿 排序是数据结构中的一块难点,也是重点。熟练的掌握各种各样的排序算法是对每个编程人员的基本的要求。历年的考研还是期末考中,排序都占了比较大的比重。二 程序实现的功能 本程序采用了各种不同的方法对同一个输入进行排序,且每一个元素其本身亦是一个结构体,又可...

数据结构与算法课程设计心得体会学习体会 35

课程设计心得体会。因为已经不是第一次做课程设计,所以对过程很是了解。前期准备工作也做的很充足,所以整个过程不慌不乱,有条不紊。总而言之,程序编写过程中,算法思路清晰,但细节处处理粗糙导致走了很多弯路。老师不只一次提到数据结构强调的是算法思路,经过这次课程设计后,我更是有了进一步深切体会。包括我之前在...

数据结构与算法课程设计心得体会学习体会 31

合肥学院。计算机科学与技术系。课程设计的心得体会。2009 2010 学年第二学期。2010年6 月。通过这次课程设计我自学了拓扑排序,使我对其排序方法和应用有了更深刻的了解。对于数据结构如何用c语言表述有了更深刻的体会和了解。在用c语言表述数据结构时遇到了不小的困难。总是在编译时错误连篇无法运行,...