线性表顺序存储结构上的基本运算

实验项目名称: 线性表的顺序存储结构上的基本运算 (所属课程: 数据结构--用C 语言描述 )

院 系:计算机科学与信息工程学院 专业班级:网络工程 姓 名:000000 学 号:0000000000 实验日期:2016.10.20 实验地点:A-06 406 合作者: 指导教师:孙高飞

本实验项目成绩: 教师签字: 日期:

(以下为实验报告正文)

一、实验目的

本次实验的目的掌握顺序表的存储结构形式及其描述和基本运算的实现;掌握动态链表结构及相关算法设计

实验要求:输入和验证程序例题。正确调试程序,记录程序运行结果。完成实验报告。

二、实验条件

Windows7系统的电脑,vc++6.0软件,书本《数据结构--用c 语言描述》

三、实验内容

3.1 根据41页代码,用c 语言定义线性表的顺序存储结构。

3.2 根据42页算法2.1实现顺序表的按内容查找。

3.3 根据43页算法2.2实现顺序表的插入运算。

3.4 根据45页算法2.3实现顺序表的删除运算。

四、实验步骤

3.2实验步骤

(1)编写头文件,创建ElemType 。

(2)根据根据41页代码,“用c 语言定义线性表的顺序存储结构”定义顺序表。

(3)根据42页算法2.1实现顺序表的按内容查找,创建Locate 函数。

(4)创建main 函数,输入SeqList L的数据元素。

(5)输入要查找的数据元素的值,调用Locate 函数,输出结果。

3.3实验步骤

(1)编写头文件,创建ElemType 。

(2)根据41页代码,“用c 语言定义线性表的顺序存储结构”定义顺序表。

(3)根据43页算法2.2实现顺序表的插入运算,创建InsList 函数。

(4)创建printList 函数,逐项输出顺序表内的元素及顺序表元素的个数。

(5)创建main 函数,输入插入的元素和其位置,调用printLinst 函数输出顺序表,调用IntList 函数,再次调用printLinst 函数输出顺序表。

3.4实验步骤

(1)编写头文件,创建ElemType 。

(2)根据根据41页代码,“用c 语言定义线性表的顺序存储结构”定义顺序表。

(3)根据45页算法2.3实现顺序表的删除运算,创建DelList 函数。

(4)创建printList 函数,逐项输出顺序表内的元素及顺序表元素的个数。

(5)创建main 函数,输入删除元素的位置,调用printLinst 函数输出顺序表,调用DelList 函数,再次调用printLinst 函数输出顺序表。

五、实验结果

(1)实验3.2顺序表的按内容查找

# include

typedef int Elemtype;

typedef struct{

Elemtype elem[100];

int last;

}SeqList;

int Locate(SeqList L,Elemtype e){

int i;

i=0;

while((i

i++;

if(i

return(i+1);

else

return(-1);

}

void main(){

SeqList s={{1,2,3,6,8,10,5,3},7};

int e=5;

int pos=Locate(s,e);

printf("Locate to %d\n",pos);

}

(2) 实验3.3顺序表的插入运算

# include

typedef int Elemtype;

typedef struct{

Elemtype elem[100];

int last;

}SeqList;

#define OK 1

#define ERROR 0

int IntList(SeqList*L,int i,Elemtype e)

{

int k;

if((iL->last+2))

{

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

return(ERROR);

}

if(L->last>=100-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);

}

void printList(SeqList s)

{

for(int i=0;i

printf("%d\t",s.elem[i]);

printf("\n");

}

void main(){

SeqList L={{1,2,4,6,8,10,5,11},8};

printList(L);

IntList(&L,3,10);

printList(L);

}

(3)实验3.4顺序表的删除运算

# include

typedef int Elemtype;

typedef struct{

Elemtype elem[100]; int last;

}SeqList;

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

{

}

void printList(SeqList s){

}

void main(){

SeqList L={{1,2,9,8,4,5,3,6,2},9}; int * h;

int k; if((iL->last+1)) { } * e=L->elem[i-1]; for(k=i;ilast;k++) L->elem[k-1]=L->elem[k]; printf("删除位置不合法!"); return(ERROR); L->last--; return(OK); printf("%d",s.last); for (int i=0;i

} printList(L); DelList(&L,3,h); printList(L);

六、讨论

1. 在实现顺序表的插入与删除运算时,不懂的创建printList 函数,把顺序表的元素逐项输出。

2. 在实现3个算法时,不会编写main 函数。

3. 在编写程序时,在语法上出现了很多错误,包括一些细节问题。

七、参考文献

列举自己在本次准备实验、进行实验和撰写实验报告过程中用到的参考文献资料。 格式如下:

耿国华 张德全 周明全等编著,《数据结构--用C 语言描述》,高等教育出版社,2015年7月,41-45页。

实验项目名称: 线性表的顺序存储结构上的基本运算 (所属课程: 数据结构--用C 语言描述 )

院 系:计算机科学与信息工程学院 专业班级:网络工程 姓 名:000000 学 号:0000000000 实验日期:2016.10.20 实验地点:A-06 406 合作者: 指导教师:孙高飞

本实验项目成绩: 教师签字: 日期:

(以下为实验报告正文)

一、实验目的

本次实验的目的掌握顺序表的存储结构形式及其描述和基本运算的实现;掌握动态链表结构及相关算法设计

实验要求:输入和验证程序例题。正确调试程序,记录程序运行结果。完成实验报告。

二、实验条件

Windows7系统的电脑,vc++6.0软件,书本《数据结构--用c 语言描述》

三、实验内容

3.1 根据41页代码,用c 语言定义线性表的顺序存储结构。

3.2 根据42页算法2.1实现顺序表的按内容查找。

3.3 根据43页算法2.2实现顺序表的插入运算。

3.4 根据45页算法2.3实现顺序表的删除运算。

四、实验步骤

3.2实验步骤

(1)编写头文件,创建ElemType 。

(2)根据根据41页代码,“用c 语言定义线性表的顺序存储结构”定义顺序表。

(3)根据42页算法2.1实现顺序表的按内容查找,创建Locate 函数。

(4)创建main 函数,输入SeqList L的数据元素。

(5)输入要查找的数据元素的值,调用Locate 函数,输出结果。

3.3实验步骤

(1)编写头文件,创建ElemType 。

(2)根据41页代码,“用c 语言定义线性表的顺序存储结构”定义顺序表。

(3)根据43页算法2.2实现顺序表的插入运算,创建InsList 函数。

(4)创建printList 函数,逐项输出顺序表内的元素及顺序表元素的个数。

(5)创建main 函数,输入插入的元素和其位置,调用printLinst 函数输出顺序表,调用IntList 函数,再次调用printLinst 函数输出顺序表。

3.4实验步骤

(1)编写头文件,创建ElemType 。

(2)根据根据41页代码,“用c 语言定义线性表的顺序存储结构”定义顺序表。

(3)根据45页算法2.3实现顺序表的删除运算,创建DelList 函数。

(4)创建printList 函数,逐项输出顺序表内的元素及顺序表元素的个数。

(5)创建main 函数,输入删除元素的位置,调用printLinst 函数输出顺序表,调用DelList 函数,再次调用printLinst 函数输出顺序表。

五、实验结果

(1)实验3.2顺序表的按内容查找

# include

typedef int Elemtype;

typedef struct{

Elemtype elem[100];

int last;

}SeqList;

int Locate(SeqList L,Elemtype e){

int i;

i=0;

while((i

i++;

if(i

return(i+1);

else

return(-1);

}

void main(){

SeqList s={{1,2,3,6,8,10,5,3},7};

int e=5;

int pos=Locate(s,e);

printf("Locate to %d\n",pos);

}

(2) 实验3.3顺序表的插入运算

# include

typedef int Elemtype;

typedef struct{

Elemtype elem[100];

int last;

}SeqList;

#define OK 1

#define ERROR 0

int IntList(SeqList*L,int i,Elemtype e)

{

int k;

if((iL->last+2))

{

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

return(ERROR);

}

if(L->last>=100-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);

}

void printList(SeqList s)

{

for(int i=0;i

printf("%d\t",s.elem[i]);

printf("\n");

}

void main(){

SeqList L={{1,2,4,6,8,10,5,11},8};

printList(L);

IntList(&L,3,10);

printList(L);

}

(3)实验3.4顺序表的删除运算

# include

typedef int Elemtype;

typedef struct{

Elemtype elem[100]; int last;

}SeqList;

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

{

}

void printList(SeqList s){

}

void main(){

SeqList L={{1,2,9,8,4,5,3,6,2},9}; int * h;

int k; if((iL->last+1)) { } * e=L->elem[i-1]; for(k=i;ilast;k++) L->elem[k-1]=L->elem[k]; printf("删除位置不合法!"); return(ERROR); L->last--; return(OK); printf("%d",s.last); for (int i=0;i

} printList(L); DelList(&L,3,h); printList(L);

六、讨论

1. 在实现顺序表的插入与删除运算时,不懂的创建printList 函数,把顺序表的元素逐项输出。

2. 在实现3个算法时,不会编写main 函数。

3. 在编写程序时,在语法上出现了很多错误,包括一些细节问题。

七、参考文献

列举自己在本次准备实验、进行实验和撰写实验报告过程中用到的参考文献资料。 格式如下:

耿国华 张德全 周明全等编著,《数据结构--用C 语言描述》,高等教育出版社,2015年7月,41-45页。


相关文章

  • 考点1:数据结构与算法
  • A )所谓算法就是计算方法 B )程序可以作为算法的一种描述方法 C )算法设计只需考虑得到计算结果 D )算法设计可以忽略算法的运算时间 题目解析:算法是一组有穷指令集,是解题方案的准确而完整的描述.通俗地说,算法就是计算机解题的过程, ...查看


  • 数据结构线性表与链表实验论文
  • 数据结构 上机实验1 班级:计科1303 姓名:辛颖 学号:[1**********]24 一.实验题目:线性表 二.实验目的: 1.熟悉将算法转换为程序代码的过程: 2.了解顺序表的逻辑结构特性,熟悉掌握顺序表存储结构的C 语言描述方法: ...查看


  • 数据结构中的名词解释
  • 本章主要介绍了如下一些基本概念:  数据结构:数据结构是研究数据元素之间抽象化的相互关系和这种关系在计算机中 的存储表示(即所谓数据的逻辑结构和物理结构),并对这种结构定义相适应的运算,设计出相应的算法,而且确保经过这些运算后所得到的新结 ...查看


  • 数据结构导论试题1
  • 全国2004年10月高等教育自学考试 1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( ) A.逻辑结构.存储结构.机外表示 B.存储结构.逻辑结构.机外表示 C.机外表示.逻辑结构.存储结构 D.机外表示.存储结构. ...查看


  • 计算机二级考试复习资料
  • 站长提醒广大考生:下 面的138道题目,在二级考试中命中率极高. 一.选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须 ...查看


  • 2014黑龙江省数据结构考试题库
  • 1.广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D ). A) (G) B) (D) C) C D) D 2.若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接 ...查看


  • 二级access公共基础历年真题解析
  • 全国计算机等级考试二级公共基础历年真题解析  2010年9月 选择题:(1)下列叙述中正确的是( ) A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C)线性 ...查看


  • 数据结构上机实验
  • 数据结构上机实验 姓名: 学号: 院系: 指导教师: 1 数据结构上机实验报告 实验一 线性表 一. 实验目的 1. 熟悉线性表的顺序和链式存储结构 2. 掌握线性表的基本运算 3. 能够利用线性表的基本运算完成线性表应用的运算 二.实验内 ...查看


  • 2014西藏自治区数据结构考试题库
  • 1.已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D ). A) Head(Head(Tail(Tail(L)))) B) Tail(Head(Head(Tail(L)))) C) Head(Ta ...查看


热门内容