#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct SqList{
int *Date ; //存储空间的基地址
int N ; //N为表中元素个数
int MaxSize ; //表的最大容量
};
//1.创建空顺序表
struct SqList * CreateList(int M){
struct SqList * L ; //创建一个名称为L的空顺序表
L = (struct SqList *)malloc(sizeof(struct SqList));
L->Date = (int *)malloc(sizeof(int) * M);
L->N = 0 ;//初始时元素个数为零
L->MaxSize = M ;
return L ;
}
//2.查找
int Find(struct SqList * L ,int X){
for(int i = 0 ; iN ;i++){
if(L->Date[i]==X)
return i ;
}
return -1 ;
}
//3.插入
void Insert(struct SqList * L,int i ,int X){
int j;
if(L->N==L->MaxSize){
//表已经满了不能插入
printf("List is Full.\n");
}
if(i<1||i>L->N+1){
printf("error.\n");
}
for(j=L->N-1;j>=i-1;j--){
L->Date[j+1] = L->Date[j]; //将aian向后移动一个位置an向前移动一个位置
L->Date[i-1] = X ; //新元素存进位置i
L->N++; //表中元素加一
}
}
//4.删除
void Delete(SqList * L, int i){
int j;
if(i<1||i>L->N){
//检查合法性
printf ("error./n");}
for(j = i; j<=L->N-1 ; j++){
L->Date[j-1]=L->Date[j];//将ai+1
L->N--;
}
}
int main(){
int m ,i ;
struct SqList *L;
scanf("%d",&m);
L=CreateList(m);
srand((int)time(NULL));
for(i=0;i<20;i++)
{
Insert(L, i ,rand()%198+2);
L->N++;
}
for(i=0;iN;i++)
printf("%d ",L->Date[i]);
printf("\n");
}
为什么像空链表插入随机数时候插不进去,总显示error呢?大神求指教小白谢谢。