实验一 算法转换为程序
- 格式:doc
- 大小:53.50 KB
- 文档页数:6
1 实验报告
2010 – 2011 学年第 2 学期 任课老师:
课程名称 《算法与数据结构》课程实验指导
班级 座号 姓名
实验题目 实验一 算法转换为程序 实验时间 实验日期: 9---22
提交日期: 9—23
实验目的、要求
一、实验目的
1.掌握如何将算法转换为程序;
2.熟悉顺序存储结构;
3.熟悉顺序表的操作;
4.熟悉顺序表的应用。
二、实验要求
1.每个同学必须独立完成;
2.程序中的开头部分必须对本程序的总体功能进行注释;程序中每个函数段必须要有注释说明该函数的功能或作用;
3.实验步骤中的1-4部分必须在每次上机之前完成,上机时进行调试和修改并填写实验报告;
4.实验报告中的源程序必须调试通过。
5.在体会中描述如下内容:
(1)对算法与程序的区别上的体会。
(2)本次实验过程的体会,是否自己独立完成?最大的困难是什么?自己准备如何解决这个困难?
(3)对本门课程的初步感觉,准备如何进行本门课程的学习。
6.提交实验报告(报告中包含源代码)、可直接运行的程序,程序运行界面要包括班级、座号和姓名,对每个输入的要求以及输出要有清晰的提示。
实验设计内容
(一)
1.使用内容的描述设计数据结构
/*顺序表*/
#indefine MAXSIZE 50
Tpedef int elemtype
typedef struct
{elemtype data[MAXSIZE];
Int len;/*序表的表长*/
}SeqList;
2.根据实验内容的描述设计算法
Void part(SeqList*L)
{int i,j;
dtatype x,y;
x=L->data[0];
for(i=1;i<=L-len-1;i++)
2 if(L->data[i];
{y=L->data[i];
For(j=i-1;j>=0;j--)
L-data[j+1]=L->data[j];
L->data[0]=y;
}
}
3.算法转化为程序
#include
#define MAXSIZE 50
Typedef int elemtype;
Typedef struct
{elemtype data[MAXSIZE];
Int len;/*顺序表中最后一个元素的序号*/
}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 sanf(“%d”,&x);
}
L->len=I;
}
/*顺序表中元素以a1为界重新排列*/
Viod part(SeqList*L)
{ int i,j;
Elemtype x,y;
X=L->data[0];
For(i=1;i If(L->data[i] {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; 3 Printf(“\n输入顺序表中的各个元素值:\n); For(i=0;i Printf(“%d”,L->data[i]); } /*主函数*/ Void main () {SeqList *)malloc(sizeof(SeqList)); Input(L); Part(L); Output(L); Getch(); } (二)算法 void ReverseList(Seqlist *L) { Datatype t; int i; for(i=0;i {t=L->data[i]; L->data[i]=L->data[L->length-1-i]; l->data[L->LENGTH-1-I]=t; } } 1. 程序 #include int main() { 4 typedef struct Lnod { int data; struct Lnod *next; }Lnod,*Linklist; Linklist p,m,n,r,L,a,b; int i; L=(Linklist)malloc(sizeof(Lnod)*5); if(!L)exit(0); L->next=NULL; for(i=0;i<5;i++) { p=(Linklist)malloc(sizeof(Lnod)); if(!p)exit(0); scanf("%d",&p->data); p->next=L->next; L->next=p; } a=L->next; printf("原来的链表中的元素为:\n"); while(a) { printf("%d, ",a->data); a=a->next; } printf("\n"); m=L->next; n=m->next; while(n->next) { r=n->next; n->next=m; m=n; n=r; } n->next=m; L->next->next=NULL; L->next=n; 5 b=L->next; printf("\n\n逆置之后链表中的元素为:\n"); while(b) { printf("%d, ",b->data); b=b->next; } printf("\n"); return 0; } 2. 二、 实验报告 根据实验内容要求写出相应的SQL语句,并记录实验过程中遇到的困难和解决问题的方法。 调试过程记录 实验结果记录以及与预期结果比较以及分析 输入数据:20 22 44 43 63 19 33 输出数据:33 19 63 43 44 22 20 输入数据和输出数据想同。 6 总结以及心得体会 刚刚开始总出现错误 ,经过多次修改终于成功。通过这次实验我发现我的C语言基础还不够好。以后要多多练习!还有对指针和函数这块还不够熟悉,应该好好努力! 教师评阅意见 教师: 年 月 日 填写内容时,可把表格扩大。实验的源程序代码(要有注释)附在表后。