#include<stdio.h>
#include<stdlib.h>
#define Maxsize 50
typedef struct stduct{
int data[Maxsize];
int length;
}sqlist;
bool listinsert(sqlist &L,int i,int e);
void printlist(sqlist &L);
bool listdelete(sqlist &L,int i,int &e);
int locateelem(sqlist L,int e);
int getelem(sqlist L,int i);
void initlist(sqlist &L);
int sqlistlength(sqlist L);
int main()
{
sqlist L;
initlist(L);
int del;
bool ret;
L.data[0]=1;
L.data[1]=2;
L.data[2]=3;
L.length=3;
ret=listinsert(L,2,60);
if(ret)
{
printf("插入成功\n");
printlist(L);
}
else
{
printf("插入失败");
}
ret=listdelete(L,1,del);
if(ret)
{
printf("删除成功\n");
printlist(L);
}
else
{
printf("删除失败\n");
}
int re;
int c;
printf("请输入要查找的数字");
scanf("%d",& c);
re=locateelem(L,c);
if(ret)
{
printf("查找成功\n");
printf("元素的位置为%d:",re);
}
else
{
printf("查找失败\n");
}
int w;
printf("\n");
w=getelem(L,3);
printf("%d\n",w);
int h;
h=sqlistlength(L);
printf("%d",h);
}
bool listinsert(sqlist &L,int i,int e)
{
if(i<1||i>L.length+1)
return false;
if(L.length>=Maxsize)
return false;
for(int j=L.length;j>=i;j--)
{
L.data[j] =L.data[j-1];
}
L.data[i-1]=e;
L.length++;
return true;
}
void printlist(sqlist &L)
{
for(int i=0;i<L.length;i++)
{
printf("%4d",L.data[i]);
}
printf("\n");
}
bool listdelete(sqlist &L,int i,int &e)
{
if(i<1||i>L.length)
return false;
e=L.data[i-1];
for(int j=i;j<L.length;j++)
{
L.data[j-1]=L.data[j];
}
L.length--;
return true;
}
int locateelem(sqlist L,int e)
{
int i;
for(i=0;i<L.length;i++)
{
if(L.data[i]==e)
return i+1;
}
return 0;
}
int getelem(sqlist L,int i)
{
return L.data[i-1];
}
void initlist(sqlist &L){
for(int i=0;i<Maxsize;i++)
L.data[i]=0;
L.length=0;
}
int sqlistlength(sqlist L)
{
return L.length;
}
线性表的增删改查
最新推荐文章于 2022-07-06 17:57:44 发布