#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
typedef int ElemType;
typedef struct
{
ElemType data[MAXSIZE];
int length;
}Sqlist;
//函数声明
void InitList(Sqlist *L); //初始化顺序表
void ShowList(Sqlist *L); //打印表
int ListInsert(Sqlist *L,int i,ElemType e); //按位序插入
int ListDelete(Sqlist *L,int i,ElemType *e); //按位序删除
int ListDeletByValue(Sqlist *L,ElemType e); //按值删除
int main()
{
Sqlist L;
ElemType e=-1;
InitList(&L);
ListInsert(&L,1,9);
ListInsert(&L,2,8);
ListInsert(&L,3,7);
ListInsert(&L,4,6);
ListInsert(&L,5,5);
ShowList(&L);
printf("插入操作%s!!!\n",ListInsert(&L,2,0)==1?"成功":"失败");
ShowList(&L);
printf("删除操作%s!!!\n",ListDelete(&L,3,&e)==1?"成功":"失败");
printf("删除的数为:%d\n",e);
ShowList(&L);
ListDeletByValue(&L,7);
ShowList(&L);
}
void InitList(Sqlist *L) //初始化顺序表
{
int i=0;
L->length=0;
while(i<MAXSIZE)
{
L->data[i]=0;
i++;
}
}
void ShowList(Sqlist *L) //打印表
{
int i=0;
for(i;i<L->length;i++)
{
printf("%d ",L->data[i]);
}
printf("\n");
printf("当前的长度:%d\n",L->length);
}
int ListInsert(Sqlist *L,int i,ElemType e)//按位序插入
{
int j=0;
if(L->length==MAXSIZE)
{
return 0;
}
if(i>L->length+1||i<1)
{
return 0;
}
for(j=L->length;j>=i;j--)
{
L->data[j]=L->data[j-1];
}
L->data[i-1]=e;
L->length++;
return 1;
}
int ListDelete(Sqlist *L,int i,ElemType *e) //按位序删除
{
int j=0;
if(i<1||i>L->length)
{
return 0;
}
*e=L->data[i-1];
for(j=i-1;j<L->length;j++)
{
L->data[j]=L->data[j+1];
}
L->length--;
return 1;
}
int ListDeletByValue(Sqlist *L,ElemType e) //按值删除
{
int j=0,k=0;
for(j;j<L->length;j++)
{
if(L->data[j]==e)break;
}
for(j;j<=L->length;j++)
{
L->data[j]=L->data[j+1];
}
L->length--;
}
数据结构 c语言实现顺序表
最新推荐文章于 2023-10-28 17:28:48 发布
1210

被折叠的 条评论
为什么被折叠?



