#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,不能有其它字符; & 不能忘掉
&和*的區別,及作用