#include <stdio.h>
#define listsize 100 //线性表的最大长度
typedef struct
{
int date[listsize]; //数组存储元素
int length; //顺序表中元素的个数
}cList;
// 线性表初始化
void Initlist(cList *l)
{
if(l == NULL)
{
return;
}
l->length = 0;
}
// 线性表删除
void DelList(cList *L , int i)
{
if(L->length <1||i<1||i>L->length)
{
printf("空表\n或删除错误");
return ;
}
int k =0;
for(k=i;k < L->length;k++)
{
L->date[k-1] = L->date[k]; **// 删除第几个元素值,对应的数组下标要减1**
}
L->length--;
}
// 线性表插入
void Inlist(cList *l , int i ,int e)
{
int k = 0;
if(i<1||i>l->length+1)
{
printf("插入不成功\n");
return ;
}
else if(l->length > listsize)
{
printf("顺序表满,不能插入\n");
return ;
}
else
{
for(k = l->length;k>i-1;k--)
{
l->date[k] = l->date[k-1];
}
l->date[i-1] = e; //插入的元素值
l->length++;
}
//显示元素
}void ListDisplay(cList *L)
{
int i;
for (i = 0; i < L->length; i++)
{
printf("%d\t", L->date[i]);
}
printf("\n");
}
int main()
{
cList L;
Initlist(&L);
int a;
int i,k;
printf("请输入线性表La的长度:");
scanf("%d", &a);
L.length = a;
//输入元素
printf("输入%d个元素\n",a);
for(i=0;i<L.length;i++)
{
scanf("%d",&L.date[i]);
}
printf("插入元素位置\n");
scanf("%d",&i);
printf("插入元素值\n");
scanf("%d",&k);
Inlist(&L,i,k);
ListDisplay(&L);
printf(" 删除数据 \n");
printf("请输入要删除元素的位置:");
scanf("%d", &i);
DelList(&L, i);
ListDisplay(&L);
return 0;
}
注
scanf("%s",&a);
likely error : " "中除了%s,不能有其它字符; & 不能忘掉
&和*的区别,及作用