Molecule H 2021-10-10 02: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 02:37
    关注

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

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 macmin m 4连接iPad
  • ¥15 DBIF_REPO_SQL_ERROR
  • ¥15 根据历年月数据,用Stata预测未来六个月汇率
  • ¥15 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部