#include<stdio.h>
#include<stdbool.h>
#define MaxSize 10
typedef struct{
int data[MaxSize];
int length;
}SqList;
InitList(SqList * L){//初始化 空表
int i;
for(i=0;i<MaxSize;i++)
L->data[i] = 0;
L->length = 0;
}
bool ListInsert(SqList * L , int i , int e) //在顺序表的位序为 i 处插入元素e
//应该判断 i 的值是否合法 即在[ i , length + 1]范围内,大于length + 1 插入即不连续
//判断顺序表是否到达最大容量,还能不能继续添加
{
if(i < 1 || i > L->length + 1) //i是否有效
return false;
if(L->length >= MaxSize )//空间是否已满
return false;
int j;
for(j = L->length ; j >= i ; j--)
L->data[j] = L->data[j-1];//第i个元素以及之后的元素后移 ,j-1附给j,数组下标等于位序-1
L->data[i - 1] = e;//在位序为 i 处插入e
L->length ++;
return true;
}
int main(){
SqList L;
SqList * q = & L;
InitList(q);//初始化
int i;
for(i = 0 ; i < 5 ; i ++)
L.data[i] = i ;
L.length = sizeof(L.data) / sizeof(L.data[0]);
ListInsert(q, 2, 9) ;
for(i = 0;i < L.length ; i++){
printf("data[%d] = %d \n", i , L.data[i]);
}
return 0;
}
能不能帮我看一下为什么我的顺序表没有插入成功呀😭
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Spartinaer 2023-11-06 10:30关注
有几个问题啊,首先for后面尽量跟{},这样可读性会更好一点,即使只有一条语句,然后有一段代码不理解你为什么那么写
L.length = sizeof(L.data) / sizeof(L.data[0]);
这也是你程序的问题,sizeof(L.data[0])结果是0吧,那0可以做除数吗?跑的时候应该会有一个运行时异常
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表