素晴1 2017-11-25 03:09 采纳率: 0%
浏览 899

顺序储存线性表错误,功能运行不了

#include
#include
#include
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct {
int elem;
int length;
int listsize;
}SqList;
//初始化
int InitList_Sq(SqList &L)
{
L.elem = (int
)malloc(LIST_INIT_SIZE * sizeof(int));
if (!L.elem)
exit(0);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return 1;
}
//查找
int LocateElem(SqList L, int x)
{
int i = 0;
while (i <= L.length - 1 && L.elem[i] != x)
i++;
if (i <= L.length)
return i;
else
return 0;
}
//插入
int ListInsert_Sq(SqList &L, int i, int e)
{
int *q, *p;
if (iL.length)
return 0;
if (L.length>L.listsize)
return 0;
q = &(L.elem[i - 1]);
for (p = &(L.elem[L.length - 1]); p >= q; --p)
*(p + 1) = *p;
*q = e;
++L.length;
return 1;
}

//删除
int ListDelete_Sq(SqList &L, int i, int &e)
{
int *p, *q;
if (iL.length)
return 0;
p = &(L.elem[i - 1]);
e = *p;
q = L.elem + L.length - 1;
for (++p; p <= q; ++p)
*(q - 1) = *q;
--L.length;
return 1;
}
void Out(SqList *L)
{
int i;
for (i = 0; i< L->length; i++)
printf("%d", L->elem[i]);
printf("\n");

}

void main()
{
SqList L;
int i, r;
InitList_Sq(L);
while (1)
{
printf("输入元素,输入0结束插入操作:");
scanf("%d", &r);
if (r== 0)
break;
printf("插入位置:");
scanf("%d", &i);
ListInsert_Sq(L, i,r);
printf("线性表为:");
Out(&L);
}
while (1)
{
printf("输入查找元素,输入0结束查找操作:");
scanf("%d", &i);
if (i == 0)
break;
r = LocateElem(L, i);
if (r == i)
printf("位置为:%d", r + 1);
else
printf("没有");
Out(&L);
}

}
图片说明

请问是遍历的问题还是插入函数的问题。求教求教

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-11-25 15:41
    关注

    鬼知道你什么错误。自己的错误自己调试,或者花钱请人帮你调试。天天都有人问这种类似的问题,然而帮了张三,对李四也没用。
    如果你只是糊弄个作业,网上有现成的可以参考。

    评论

报告相同问题?

悬赏问题

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