淮海工学院数据结构第一次实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮海工学院计算机科学系实验报告书

课程名:《数据结构》

题目: 线性数据结构试验

班级:软嵌151

学号:2015123352

姓名: 韩吉

线性表实验报告要求

1目得与要求:

1)掌握线性表数据结构得基本概念与抽象数据类型描述;

2)熟练掌握线性表数据结构得顺序与链式存储存表示;

3)熟练掌握线性表顺序存储结构得基本操作算法实现;

4)熟练掌握线性表得链式存储结构得基本操作算法实现;

5)掌握线性表在实际问题中得应用与基本编程技巧;

6)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结

果);

7)按照报告格式与内容要求,认真书写实验报告,并于下周周二前统一提交实验报告电子版文档(每次实验全体同学必须提交实验报告电子版,实验报告文档文件命名方式:姓名+学号+数据结构第X次实验报告)提交给学委,而后由学委以班为单位统一打包(包文件名为:软件14X班-数据结构第X次实验报告)用邮件发给老师;提交纸质报告(每班每次收5份,学委安排,保证每学期每个同学至少提交一次)一起提交给老师。每次提交电子文档时,学委务必统计与上报未交报告人数与具体姓名;凡逾期不交报告者,不再推迟提交,一律按照旷交处理。

8)积极开展实验组组内交流与辅导,严禁直接复制与剽窃她人实验成果,一旦发现严肃处理;

9)上实验课前,要求每个同学基本写好程序,并存储在自己得U盘上,用于实验课堂操作时调试与运行.

2实验内容或题目(在一个主程序中实现全部题目内容)

一、顺序表得基本操作实现实验

要求:数据元素类型ElemType取整型int.按照顺序存储结构实现如下算法:

1)创建任意整数线性表(即线性表得元素值随机在键盘上输入)得顺序存储结构(即顺序表),长度限定在25之内;

2)打印/显示(遍历)该线性表(依次打印/显示出表中元素值);

3)在顺序表中查找第i个元素,并返回其值;

4)在顺序表第i个元素之前插入一已知元素;

5)在顺序表中删除第i个元素;

6)求顺序表中所有元素值(整数)之与;

二、链表(带头结点)基本操作实验

要求:数据元素类型ElemType取字符型char。按照动态单链表结构实现如下算法:

1)按照头插法或尾插法创建一个带头结点得字符型单链表(链表得字符元素从键盘输入),长度限定

在10之内;

2)打印(遍历)该链表(依次打印出表中元素值,注意字符得输入顺序与链表得结点顺序);

3)在链表中查找第i个元素,i合法返回元素值,否则,返回FALSE;

4)在链表中查找与一已知字符相同得第一个结点,有则返回TRUE,否则,返回FALSE;

5)在链表中第i个结点之前插入一个新结点;

6)在线性表中删除第i个结点;

7)计算链表得长度。

3实验步骤与源程序

#include”stdio、h”

#include"stdlib、h”

#include"malloc、h"

#define OK1

#define ERROR 0

#define TURE 1

#define FALSE 0

#defineElemType int

#define MAXSIZE 25

typedef struct

{

ﻩElemType elem[MAXSIZE];

ﻩintlast;

}SeqList;

int GetData(SeqList*L,int i)

returnL-〉elem[i—1];

}

int InsList(SeqList *L,int i,ElemType e)

int k;

if((i〈1)||(i〉L-〉last+2))

ﻩ{

ﻩprintf("插入位置i值不合法!");

ﻩﻩreturn(ERROR);

ﻩ}

ﻩif(L->last〉=MAXSIZE-1)

ﻩ{

ﻩprintf(”超出了链表得最大范围,无法插入无法插入!”); ﻩreturn(ERROR);

ﻩ}

for(k=L—〉last;k〉=i—1;k——)

L—〉elem[k+1]=L-〉elem[k];

ﻩL-〉elem[i—1]=e;

ﻩL->last++;

return(OK);

int DelList(SeqList *L,int i,ElemType *e) {

int k;

ﻩif((i<1)||(i〉L-〉last+1))

{

ﻩprintf("删除位置不在表中,不合法!”);

ﻩreturn(ERROR);

ﻩ}

*e=L->elem[i—1];

ﻩfor(k=i;k〈=L—>last;k++)

ﻩﻩL-〉elem[k-1]=L—〉elem[k];

L—〉last--;

return(OK);

int SumList(SeqList *L)

ﻩint sum=0;

ﻩfor(int i=0;i〈=L->last;i++)

ﻩ{

ﻩsum+=L—>elem[i];

ﻩreturn(sum);

void main()

{

SeqList *l;

int p; //要查找得位置

ﻩint *q;

int r;//线性表得长度

ﻩintt;ﻩ//插入得元素

ﻩint s;ﻩ//删除得位置

ﻩint w;//要插入得位置

int i;

ﻩl=(SeqList*)malloc(sizeof(SeqList));

ﻩq=(int*)malloc(sizeof(int));

printf(”请输入线性表得长度:");

ﻩscanf(”%d”,&r);

l—〉last=r-1;

printf("请输入线性表中得各元素值:\n");

for(i=0;i〈=l-〉last;i++)

ﻩ{

ﻩﻩscanf(”%d",&l->elem[i]);

ﻩprintf("线性表中所有元素之与就是:%d\n”,SumList(l));ﻩprintf("请输入要查找得位置:ﻩ");

ﻩscanf("%d”,&p);

printf("查找得元素就是:%d\n",GetData(l,p));

printf(”请输入要插入得位置:");

ﻩscanf("%d",&w);

printf("插入得元素就是: ”);

相关文档
最新文档