#include <bits/stdc++.h>
#define MAXN 100
using namespace std;
typedef struct Node
{
int *elem;
int length;
int listsize;
}Sqlist;
Sqlist makelist()
{
Sqlist L;
L.elem=(int*)malloc(MAXN*sizeof(int));
L.length=0;
L.listsize=MAXN;
return L;
}
void init(Sqlist &L,int n)
{
printf("依次输入要的输入的值:\n");
for(int i=0;i<n;i++)
scanf("%d",&L.elem[i]);
L.length=n;
}
void output(Sqlist L)
{
printf("打印以下的链表中的值:\n");
for(int i=0;i<L.length;i++)
printf("%d ",L.elem[i]);
printf("\n");
}
void Insert(Sqlist &L,int p,int X)//p代表插入的位置 X代表插入的值
{
int i;
if(p<0||p>L.listsize)
{
printf("插入的位置不合法\n");
return ;
}
for(i=L.length;i>=p;i--)
L.elem[i]=L.elem[i-1];
L.elem[i]=X;
L.length++;
}
void Delete(Sqlist &L,int p)//p代表删除的位置
{
int i;
if(p<0||p>=L.length)
{
printf("删除的位置不合法\n");
return ;
}
for(i=p;i<=L.length;i++)
L.elem[i-1]=L.elem[i];
L.length--;
}
int main(void)
{
Sqlist L=makelist();
int n;
int p,X;
int q;
printf("请输入你需要的n个数:\n");
scanf("%d",&n);
init(L,n);
printf("请输入插入的位置和插入的数值:\n");
scanf("%d%d",&p,&X);
Insert(L,p,X);
output(L);
printf("请输入删除的位置:\n");
scanf("%d",&q);
Delete(L,q);
output(L);
}
动态顺序表的插入删除操作
最新推荐文章于 2023-03-15 16:59:01 发布