Molecule H 2021-10-10 10:31 采纳率: 100%
浏览 20
已结题

数据结构链表的顺序存储

#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向后移动一个位置
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
an向前移动一个位置
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呢?大神求指教小白谢谢。

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-10-10 10:37
    关注

    肯定不行了,空表N为0,你j=N-1开始不就是-1了么

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月18日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘