本文包含了顺序表的建立,初始化,插入,删除,查找等基本运算
代码如下:
#include<stdio.h>
#include<stdlib.h>
typedef char ElemType;
#define maxsize 100
typedef struct
{
ElemType elem[maxsize];
int length;
}SeqList;
void Init_Seqlist(SeqList* L)
{
L->length = 0;
}
void Creat_Seqlist(SeqList* L)
{
int n = 0;
printf("请输入顺序表长度\n");
scanf("%d", &n);
if (n<0 || n>maxsize)
printf("输入错误\n");
for (int i = 0; i < n; i++)
{
int s = i+ 1;
printf("请输入%d个数字", s );
scanf("%d", &L->elem[i]);
L->length++;
}
}
void Insert_Seqlist(SeqList* L)
{
int c = 0;
printf("请输入要插入的位置\n");
int a = 0;
scanf("%d", &a);
int A = a - 1;
printf("请输入要插入的元素");
int b = 0;
scanf("%d", &b);
if (L->length >= maxsize - 1)
printf("表已经满了\n");
if (A<1 || A>L->length)
{
printf("位置错误\n");
}
for (c = L->length;c>= A;c--)
{
L->elem[c+ 1] = L->elem[c];
}
L->elem[A] = b;
L->length++;
}
void Printlist(SeqList* L)
{
printf("显示\n");
for (int i = 0; i < L->length; i++)
{
printf("%d", L->elem[i]);
}
printf("\n");
}
void Delete_Seqlist(SeqList* L,int *e)
{
int a = 0;
printf("请输入要删除的元素序号\n");
scanf("%d", &a);
int A = a-1;
if (A<0 || A>L->length-1)
{
printf("输入元素序号错误\n");
}
*e = L->elem[A];
for (int i = A; i<=L->length-1; i++)
{
L->elem[i] = L->elem[i+1];
}
L->length--;
}
void Delete_Seqlist2(SeqList* L)
{
int a = 0;
printf("请输入需要删除的元素\n");
scanf("%d", &a);
for (int i = 0; i <= L->length - 1; i++)
{
if (a == L->elem[i])
{
for (int j = i; j < L->length; j++)
{
L->elem[j] = L->elem[j + 1];
L->length--;
}
printf("删除成功\n");
break;
}
}
}
void Search_Seqlist(SeqList* L)
{
int a = 0;
printf("请输入需要查找元素的序号");
scanf("%d", &a);
int A = a - 1;
if (A<0 || A>L->length - 1)
printf("输入错误\n");
else
{
printf("%d\n",L->elem[A]);
}
}
void Search_Seqlist2(SeqList* L)
{
int a = 0;
printf("请输入要查找的元素\n");
scanf("%d", &a);
for (int i = 0; i <= L->length - 1; i++)
{
if (a == L->elem[i])
{
printf("找到了,下标为:%d", i);
}
}
}
int main()
{
int e;
SeqList L;
Init_Seqlist(&L);//初始化
Creat_Seqlist(&L);//创建顺序表
Printlist(&L);
Insert_Seqlist(&L);//插入
Printlist(&L);
Delete_Seqlist(&L,&e);//按序号删除
Printlist(&L);
Delete_Seqlist2(&L);//按元素删除
Printlist(&L);
Search_Seqlist(&L);//按序号查找
Printlist(&L);
Search_Seqlist2(&L);//按元素查找
Printlist(&L);
return 0;
}