数据结构实验一_顺序表的基本操作实验报告实验一顺序表的基本操作一、实验目的掌握线性表的顺序表基本操作:建立、插入、删除、查找、合并、打印等运算。二、实验要求包含有头文件和main函数;1.格式正确,语句采用缩进格式;2.设计子函数实现题目要求的功能;3.编译、连接通过,熟练使用命令键;4.运行结果正确,输入输出有提示,格式美观。三、实验设备、材料和工具1.奔腾2计算机或以上机型2.turboc2,win-tc四、实验内容和步骤1.建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。2.往该顺序表中第i位置插入一个值为x的数据元素。3.从该顺序表中第j位置删除一个数据元素,由y返回。4.从该顺序表中查找一个值为e的数据元素,若找到则返回该数据元素的位置,否则返回“没有找到”。五、程序#include#include#definelist_init_size10#defineincrement2typedefstruct{int*elem;intlength,listsize;}sqlist;//类型定义voidinitlist_sq(sqlist&L)//初始化顺序表{}voidoutput(sqlistL)//输出顺序表{}voidinsertlist(sqlist&L,inti,intx)//顺序表中插入x{}voiddeletelist(sqlist&L,intj,inty)//顺序表中删除y{}intlocateelem(sqlist&L,inte)//顺序表中查找e{}voidmain(){}【运行结果】voidinitlist_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;returnOK;}voidoutput(sqlistL)//输出顺序表{for(inti=0;iprintf(%d,,L.elem[i]);returnOK;}voidinsertlist(sqlist&L,inti,intx)//顺序表中插入x{intp,q;if(ireturnERROR;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;returnok;}voiddeletelist(sqlist&L,intj,inty)//顺序表中删除y{intp,q;if(ip=&(L.elem[i-1]);y=*p;q=L.elem+L.length-1;for(++p;p=q;++p)*(p-1)=*p;--L.length;returnok;}intlocateelem(sqlist&L,inte)//顺序表中查找e{intp;i=1;p=L.elem;while(iif(ielsereturn0;}voidmain(){intd,p,a,b;intc;initlist_sq(&L);output(L);insertlist(&L,d,a);deletelist(&L,p,b);locateelem(&L,c);}