数据结构课程设计报告

上传人:新** 文档编号:488772281 上传时间:2024-02-11 格式:DOC 页数:19 大小:79KB
返回 下载 相关 举报
数据结构课程设计报告_第1页
第1页 / 共19页
数据结构课程设计报告_第2页
第2页 / 共19页
数据结构课程设计报告_第3页
第3页 / 共19页
数据结构课程设计报告_第4页
第4页 / 共19页
数据结构课程设计报告_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《数据结构课程设计报告》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(19页珍藏版)》请在金锄头文库上搜索。

1、. 编号课程设计题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院 计算机科学与工程学院 专 业 计算机科学与技术 班 级 2011级 37-3班 学生姓名 XX 学 号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时 间1、 一元稀疏多项式计算器实验内容一元稀疏多项式计算器。问题描述设计一个一元稀疏多项式简单计算器。需求分析其基本功能包括:1输入并建立多项式;2输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,cn,en,其中n是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;3多项式a和b相减,建

2、立多项a+b;4多项式a和b相减,建立多项式a-b;5计算多项式在x处的值;6计算器的仿真界面选做;概要设计-=ADT=-void input; /输入两个多项式void sort;/用冒泡排序法对一个多项式进行降序排序void sum; /多项式求和void minus; /多项式相减void output;/输出多项式void operate;/对多项式进行操作int qiuzhi;/计算多项式在x处的值void main;主函数存储结构typedef struct node/*定义多项式每一项*/int e;/e为指数float c;/c为系数struct node *next;/nex

3、t指向下一项dnode;流程图1 dnode *creat /多项式的创建, 即输入两个多项式hwhile 项数输入多项式的系数和指数p-next=h-next; h-next=p;继续输入return h;2. void sort /采用冒泡法对链表每一项重新排序/whilenext!=NULLp=p-next; /寻找尾结点pi=p;指向最后一次交换的位置,初值为表尾whilenext /外层循环,比较趟数fornext;p!=pi;p=p-next内层循环,前后两两相比swap; pl=p; /调用交换函数pi=pl;3. dnode *operate /稀疏多项式计算/ while比较

4、对应两项的指数x=p-c+q-c; iffabsp=p-next;q=q-next;if 将和链接到新的链表中 else ifeq-ep链接到新的链表中,p后移,q不动else ifeep链接到新的链表中,q后移,p不动+c-c;if t-next=q;+c-c;if t-next=p;+c-c;4. float qiuzhi /求多项式在x处的值 if return 0;whileife=0 sum+=p-c;else sum+=c*powe; p=p-next;return sum;详细设计源代码如下:#include#include#include#define NULL 0typede

5、f struct node/*定义多项式每一项*/int e;/e为指数float c;/c为系数struct node *next;/next指向下一项dnode;dnode *creat/*用链表存放多项式*/多项式的创建, 即输入两个多项式dnode *h,*p;int e,i,n;/n为多项式的项数float c;/c为多项式的系数h=mallocsizeof;/分配头节点h-next=NULL;do /当n为0或小于1时,则重新输入 printf;scanf;whilen;fori=1;i/输入各项的系数c和指数eprintf;scanf;p=mallocsizeof;/创建新结点p

6、-c=c;p-e=e;/将值传给data域p-next=h-next;/用头插法建立链表h-next=p;return h;/返回头结点void swap/*交换p,q指针所指的指数和系数*/float m; /中间变量int n; /中间变量n=p-e; /交换操作p-e=q-e;q-e=n;m=p-c;p-c=q-c;q-c=m;void sort/*采用冒泡法对链表每一项重新排序*/dnode *pi,*pl,*p,*q;p=h-next;/p此时指向第一项whilenext!=NULLp=p-next;/寻找尾结点pi=p; /pi指向最后一次交换的位置,初值为表尾whilenext/

7、结点数大于1时pl=h-next;/pl为中间变量,起传递地地址的作用fornext;p!=pi;p=p-nextq=p-next;ifeq-eswap; /调用交换函数pl=p;pi=pl;/pi指向前一个结点dnode *operate /*稀疏多项式计算*/int sel;float x;dnode *p1,*p2,*p,*t;/t为结果链表的表头t=mallocsizeof;t-next=NULL;printf;printf;printf;printf;printf;printf;printf;scanf;p1=a-next;p2=b-next;whileife=p2-e/指数相同if

8、x=p1-c+p2-c;/系数相加elsex=p1-c-p2-c;/系数相减ifp=mallocsizeof;p-e=p1-e;p-c=x;p-next=t-next;/利用头插法将p结点插入t中t-next=p;p1=p1-next;p2=p2-next;else ifep2-e /p1的指数大于p2的指数p=mallocsizeof;p-e=p2-e;ifp-c=p2-c;elsep-c=*p2-c;p-next=t-next;t-next=p;p2=p2-next;else/p1的指数小于p2的指数p=mallocsizeof;p-e=p1-e;p-c=p1-c;p-next=t-next;t-next=p;p1=p1-next;while/p2为空,p1不为空时p=mallocsizeof;p=p1;p1=p1-next;p-next=t-next;/把p1 放在结果链表后面t-next=p;while/p1为空,p2不为空时p=mallocsizeof;p-e=p2-e;if/如果选择的是2,则将p2中剩余的项的系数取其相反数p-c=*p2-c;elsep-c=p2-c;p2=p2-next;p-next=t-next;/把p1 放在结果链表后面t-next=p;return t;/返回运算后的多项式的头结点void

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号