- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完美 WORD
完美 WORD 格式
专业整理知识分享
专业整理
知识分享
洛阳理工学院实验报告
系别 计算机 班级 学号 姓名
课程名称 实验名称 实验目的:
数据结构
顺序表的基本操作
实验日期
成绩
10/23
熟悉掌握线性表顺序存储结构,掌握与应用顺序表的查找、插入、删除等基本操作算法,训练和提高结构化程序设计能力及程序调试能力。
实验条件:
计算机一台, Visual C++6.0
实验内容:
问题描述
以顺序表为存储结构实现以下基本操作:
在第 i 个元素前插入一个新元素。
查找值为 x 的某个元素。若成功,给出 x 在表中的位置;不成功给出提示信息。
删除第 i 个元素,若成功,给出提示信息并显示被删元素的值;不成功给出失败的提示信息。
数据结构类型定义
typedef struct
{ ElemType elem[MAXSIZE]; Int last;
}SeqList;
模块划分
创建顺序表输入函数: void Input(SeqList *L,int n) ;
创建顺序表输出函数: void Output(SeqList *L) ;
创建顺序表的内容查找函数: int Locate(SeqList L,ElemType e) ;
创建顺序表的插入函数: int InsList(SeqList *L,int i,ElemType e) ;
创建顺序表的删除函数: int DelList(SeqList *L,int i,ElemType *e) ;
主函数: void main()
详细设计
#include stdio.h #include stdlib.h #include malloc.h #define OK 1
#define ERROR -1
#define TRUE 1
#define FALSE 0 #define ElemType int
#define MAXSIZE 100 // 最大长度
typedef struct
{ ElemType elem[MAXSIZE]; int last;
}SeqList;
void Input(SeqList *L,int n) // 输入函数
{ int i;
printf( 请输入线性表的各元素值 :\n); for(i=0; in; i++)
scanf(%d,L-elem[i]);
}
void Output(SeqList *L) // 输出函数
{ int i;
for(i=0; i=L-last; i++) printf(%2d,,L-elem[i]); printf(\n);
}
int Locate(SeqList L,ElemType e)// 内容查找函数
{ int i; i=0;
while((i=L.last)(L.elem[i])!=e) i++;
if(i=L.last)
return(i+1); // 返回序号
else return(-1);
}
int InsList(SeqList *L,int i,ElemType e)// 插入数据
{ int k;
if((i1) || (iL-last+2)) /* 首先判断插入位置是否合法 */
{ printf( 插入位置不合法 \n); 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; // 第 i 个元素的下标为 i-1 L-last++;
return(OK);
}
int DelList(SeqList *L,int i,ElemType *e) // 删除函数
/*在顺序表 L 中删除第 i 个数据元素,并用指针参数 e 返回其值。 i 的合法取值为 1≤i≤L.last+1 */
{ int k; if((i1)||(iL-last+1))
{ printf( 删除位置不合法 !\n); return(ERROR);
}
*e = L-elem[i-1]; /* 将删除的元素存放到 e 所指向的变量中 */ for(k=i; k=L-last; k++)
L-elem[k-1] = L-elem[k]; /* 将后面的元素依次前移 */ L-last--;
return(TRUE);
}
void main()// 主函数
{SeqList l,*la;
int p,q,r,k,j ,m,num;
printf( 请输入线性表的长度 :); scanf(%d,r);
l.last = r-1;
文档评论(0)