数据结构实验一_顺序表的基本操作实验报告

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

实验一顺序表的基本操作

一、实验目的

掌握线性表的顺序表基本操作:建立、插入、删除、查找、合并、打印等运算。

二、实验要求包含有头文件和main函数;

1.格式正确,语句采用缩进格式;

2.设计子函数实现题目要求的功能;

3.编译、连接通过,熟练使用命令键;

4.运行结果正确,输入输出有提示,格式美观。

三、实验设备、材料和工具

1.奔腾2计算机或以上机型

2.turboc2,win-tc

四、实验内容和步骤

1. 建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。

2. 往该顺序表中第i位置插入一个值为x的数据元素。

3. 从该顺序表中第j位置删除一个数据元素,由y返回。

4. 从该顺序表中查找一个值为e的数据元素,若找到则返回该数据元素的位置,否则返回“没有找到”。

五、程序

#include

#include

#define list_init_size 10

#define increment 2

typedef struct {

int *elem;

int length,listsize;

}sqlist; //类型定义

void initlist_sq(sqlist &L) //初始化顺序表

{ }

void output(sqlist L) //输出顺序表

{ }

void insertlist(sqlist &L,int i, int x) //顺序表中插入x { }

void deletelist(sqlist &L,int j, int y) //顺序表中删除y { }

int locateelem(sqlist &L,int e) //顺序表中查找e { }

void main()

{ }

【运行结果】

void initlist_sq(sqlist &L) //初始化顺序表

{

L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int)); if(!L.elem) exit (OVERFLOW);

L.length=0;

L.listsize=LIST_INIT_SIZE;

return OK;

}

void output(sqlist L) //输出顺序表

{

for(int i=0;i<=L.length-1;i++)

printf("%d,",L.elem[i]);

return OK;

}

void insertlist(sqlist &L,int i, int x) //顺序表中插入x {

int p,q;

if(i<1||i>L.length+1)

return ERROR;

if(L.length>=L.listsize){

newbase=(int*)realloc(L.elem,

(L.listsize+LISTINCREMENT)*sizeof(int));

if(!newbasde)exit(OVERFLOW);

L.elem=newbase;

L.listsize+=LISTINCREMENT;

}

q=&(L.elem[i-1];

for(p=&(L.elem[L.length-1]);

p>=q;

--p*(p+1)=*p;

*p=x;

++L.length;

return ok;

}

void deletelist(sqlist &L,int j, int y) //顺序表中删除y {

int p,q;

if(i<1||I>L.length+1) return ERROR;

p=&(L.elem[i-1]);

y=*p;

q=L.elem+L.length-1;

for(++p;p<=q;++p)*(p-1)=*p;

--L.length;

return ok;

}

int locateelem(sqlist &L,int e) //顺序表中查找e { int p;

i=1;

p=L.elem;

while(i<=L.length&&!(*p++,e))++i;

if(i<=L.length) return i;

else return 0;

}

void main()

{

int d,p,a,b;

int c;

initlist_sq(&L);

output( L);

insertlist( &L, d, a);

deletelist( &L, p, b);

locateelem( &L, c); }

相关文档
最新文档