数据结构课程设计

发布 2022-10-01 21:14:28 阅读 8329

课程设计报告。

学院软件学院。

课程名称数据结构。

专业班级2011级软件工程

学生姓名: 学号:

学生姓名: 学号:

指导教师。完成时间:2024年6月25日。

目录。1 一元稀疏多项式计算器 1

1.1 概述 1

1.2 实验内容 1

1.3 概要设计 1

1.4 调试分析 2

1.5 源程序** 3

2哈夫曼编/译码器 6

2.1 概述 6

2.2 实验内容 6

2.3 概要设计 6

2.4 调试分析 7

2.5 源程序** 7

3 图的基本操作 11

3.1 概述 11

3.2 实验内容 11

3.3 概要设计 11

3.4 调试分析 12

3.5 源程序** 13

数据结构》课程设计评分表 18

1 一元稀疏多项式计算器。

1.1 概述。

本次数据结构课程设计共完成一题:一元稀疏矩阵多项式计算器问题。主要是利用单链表的知识解决。

使用语言:c

编译环境:tc3.0

1.2 实验内容。

1. 问题描述:

设计一个一元稀疏多项式简单计算。

2. 需求分析:一元稀疏多项式简单计算器的基本功能是。

1)输入并建立多项式;

2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,..cn,en,其中n是多项式的项数,ci,ei,分别是第i项的系数和指数,序列按指数降序排列;

3)多项式a和b相加,建立多项式a+b;

4)多项式a和b相减,建立多项式a-b;

1.3 概要设计。

1、存储结构。

typedef struct node定义多项式每一项

float cc为系数。

int ee为指数。

struct node * next; /next指向下一项。

dnodednode * create

/用链表存放多项式(带头结点)

void swap(dnode * p,dnode * q

/交换p,q指针所指的指数和系数。

void sort(dnode * h);

/用(冒泡法)对链表每一项重新排序(将e升序排序)

dnode * con(dnode * a,dnode * b);

/系数多项式计算。

void disp(dnode * h);

/输出结果

2、流程图。

1.4 调试分析。

1、问题分析。

1)一开始调试时,发现程序运行不了,经多次检查发现原来是结果头指针t忘记了初始化为null,于是就改正了。

2)调试出来的结果是升序的(题目要求输出为降序),经检查发现,在冒泡排序处,把交换次序弄反啦。

2、运行结果。

1)输入两个多项式a、b以及选择要进行的运算。

(2)运行结果。

1.5 源程序**。

#include<>

#include<>

#define null 0

typedef struct node定义多项式每一项

float cc为系数。

int ee为指数。

struct node * next; /next指向下一项。

dnode;

dnode * create用链表存放多项式(带头结点)

dnode * h,* p;

int e,i,nn为多项式的项数。

float c;

h=(dnode * malloc(sizeof(dnode));分配头结点。

h->next=null

do若n小于1,则重新输入,因为项数不可能小于1

while(n<1);

for(i=1;i<=n;i++)

return(h);

void swap(dnode * p,dnode * q交换p,q指针所指的指数和系数。

float temp;

int temp1;

temp1=p->e;p->e=q->e;q->e=temp1;

temp=p->c;p->c=q->c;q->c=temp;

void sort(dnode * h用(冒泡法)对链表每一项重新排序(将e升序排序)

dnode * pi,* pl,* p,* q;

p=h->next即p指向第一个结点。

while(p->next!=null)

p=p->next;

pi=ppi指向最后一次交换的位置,初值为表尾。

while(pi!=h->nextpi不等于第一个结点(即从表尾扫描到表头)

pi=pl; /记录一轮排序后,移动指针的位置。

dnode * con(dnode * a,dnode * b系数多项式计算。

int select;

float x;

dnode * p1,* p2,* p,* tt为结果链表的表头。

t=(dnode *)malloc(sizeof(dnode));

t->next=null结果链表t的头指针置空。

printf("1. +n");

printf("2. -n");

printf("select(1,2):"

scanf("%d",&select);

p1=a->next; p2=b->nextp1,p2分别指向两个多项式的第一项。

while(p1&&p2)

if(p1->e==p2->e若p1,p2指数相等。

if(select==1) x=p1->c+p2->c;

elsex=p1->c-p2->c;

if(x!=0如果系数不抵消为0

p=(dnode *)malloc(sizeof(dnode));

数据结构课程设计

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