算法转换为程序.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、本文档付费后,不意味着付费购买了版权,只能用于单位或个人使用,不得用于商业用途(如:【转卖】进行直接盈利和【编辑后售卖】进行间接盈利)。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:18428362892(电话支持时间:9:00-19:00)。
算法转换为程序

《算法与数据结构》课程实验指导 实验一 算法转换为程序 一、实验目的 1.掌握如何将算法转换为程序; 2.熟悉顺序存储结构; 3.熟悉顺序表的操作; 4.熟悉顺序表的应用。 二、实验内容 1.理解题目“将顺序表(a1,a2,…,an)重新排列成以a1为界的两部分:a1之前的值均比a1小,a1后面的值都比a1大”的算法,理解下面实验步骤三(3),认真体会算法与程序的区别。 2.设计算法P43三(1),并转换为程序上机实现,按照要求撰写实验报告。 三、实验内容1的算法与程序示例 1.根据实验内容的描述设计数据结构 /*顺序表*/ #define MAXSIZE 20 typedef int datatype; typedef struct {datatype data[MAXSIZE]; int last;/*顺序表中最后一个元素的序号*/ }SeqList; 2.根据实验内容的描述设计算法 void part(SeqList *L) { int i,j; datatype x,y; x=L->data[0]; for(i=1;i<=L->last;i++) if(L->data[i]<x) {y=L->data[i]; for(j=i-1;j>=0;j--) L->data[j+1]=L->data[j]; L->data[0]=y; } } 3.将算法转化为程序(见dssy1.txt) #include <stdio.h> #define MAXSIZE 20 typedef int datatype; typedef struct {datatype data[MAXSIZE]; int last;/*顺序表中最后一个元素的序号*/ }SeqList; /*创建顺序表*/ void input(SeqList *L) {int i,x; i=0; printf(“\n输入顺序表中的元素值,-1结束:“); scanf(“%d“,&x); while(x!=-1) { L->data[i]=x;i++; if(i==MAXSIZE)printf(“表空间已经满了!!“); else scanf(“%d“,&x); } L->last=i-1; } /*顺序表中元素以a1为界重新排列*/ void part(SeqList *L) { int i,j; datatype x,y; x=L->data[0]; for(i=1;i<=L->last;i++) if(L->data[i]<x) {y=L->data[i]; for(j=i-1;j>=0;j--) L->data[j+1]=L->data[j]; L->data[0]=y; } } /*输出顺序表*/ void output(SeqList *L) {int i; printf(“\n输出顺序表中的各个元素值:\n”); for(i=0;i<=L->last;i++) printf(“%d ”,L->data[i]); } /*主函数*/ void main() {SeqList *L; L=(SeqList *)malloc(sizeof(SeqList)); input(L); part(L); output(L); getch(); } 四、实验要求 1.每个同学必须独立完成; 2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用; 3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告; 4.实验报告中的源程序必须调试通过。 5.在体会中描述如下内容: (1)对算法与程序的区别上的体会。 (2)本次实验过程的体会,是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难? (3)对本门课程的初步感觉,准备如何进行本门课程的学习。 6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。 实验二 单链表 一、实验目的 1.熟悉单链表的存储结构; 2.熟悉单链表的操作; 3.熟悉单链表的应用。 二、实验内容 1.设计算法实现“已知带头结点的单链表L中的结点是按整数值递增排列,设计算法并实现将值为x的结点插入到表L中,使得L仍然有序。”将算法转换为程序上机实现,并按照要求撰写实验报告。 2.(选做)设计算法实现“两个已排序的单链表,合并成一个链

您可能关注的文档

文档评论(0)

asd522513656

相关文档

相关课程推荐