课程设计报告。
学院软件学院。
课程名称数据结构。
专业班级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 初始化时每个方格都是关闭的,一个...