初次写线性表,遇到问题请看一下

img

img

初次写线性表遇到如下问题请各位指点(代码如上)
问题:
例如输入三个元素:4,5,3
输出的结果却是:3,3
例如输入两个元素:34,45
输出结果却是:2,45
问:为什么输出结果不是我输入的数据

供参考:
space infunction(space L) 赋值函数里

输入语句改为:scanf_s("%d",&LL.data[LL.length+i])

LL.length += 1;这句移到for(){}外面,修改为:LL.length += j;

输出函数里:
printf("%d\n",*LLL.data); 修改为:printf("%d\n",LLL.data[i]);

主函数里:
space HH = infunction(H); 修改为:infunction(H);
outfunction(HH); 修改为:outfunction(H);

你的data是一个数组,但是在你赋值的时候一直在给数组的首地址赋值, 而没有使得指针后移,所以相当于3,4,5一直是在首地址上不断覆盖,而对后续的数组空间赋值。
输出数组内容的时候也是同理。希望对你有所帮助😄