实验报告
附:源程序:
#include<stdio.h>
#define Maxsize 100
#define error 0
#define ok 1
typedef struct
{
int elem[Maxsize];
int last;
}SeqList;
int InsList(SeqList *L,int a,int i);
int Locate(SeqList L,int e);
int Del(SeqList *L,int i);
void main()
{
int i,e,a;
int list1,list2;
SeqList L;
L.last=0;
for(i=0;i<100;i++)
{
printf("请输入顺序表元素\n");
scanf("%d",&L.elem[i]);
if(L.elem[i]==-1)
break;
L.last++;
}
if(L.elem[L.last]==-1)
L.last--;
printf("要插入的元素,位置为\n");
scanf("%d,%d",&a,&i);
list1=InsList(&L,a,i);
if(list1)
{
printf("插入后的顺序表为:\n");
for(i=0;i<=L.last;i++)
printf("%d",L.elem[i]);
printf("\n");
}
else
printf("插入失败!");
printf("要查找的元素为\n");
scanf("%d",&e);
list2=Locate(L,e);
if(!list2)
printf("该元素不存在\n");
else
printf("该元素所在位置的序号为:%d\n",list2);
/*删除元素*/
printf("是否要删除该元素?<是请输入 1 ,否请输入 0 >\n");
int m;
scanf("%d",&m);
if(m)
{
Del(&L,list2);
printf("删除后的顺序表为:\n");
for(i=0;i<=L.last;i++)
printf("%d",L.elem[i]);
printf("\n");
}
else printf("未删除元素%d\n",e);
}
int InsList(SeqList *L,int a,int i)//i位置,下标i-1
{
int p;
if(L->last>=Maxsize-1)
{
printf("表已满,无法插入");
return(error);
}
for(p=L->last;p>=i-1;p--)
L->elem[p+1]=L->elem[p];
L->elem[i-1]=a;
L->last++;
return(ok);
}
int Locate(SeqList L,int e)
{
int i=0;
while((i<=L.last)&&(L.elem[i]!=e))
i++;
if (i<=L.last)
return(i+1);
else return(error);
}
int Del(SeqList *L,int i)
{
int k;
for(k=i;k<=L->last;k++)
L->elem[k-1]=L->elem[k];
L->last--;
return ok;
}
第二篇:实验报告-线性表基本操作
计算机学院实验报告专用纸
实验室:网络实验室 机号:网20 实验日期:20##年3月21日
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页