求助:数据结构中队列的错误
#include <stdio.h>#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data;
int length;
}SeqList;
intListInit(SeqList*L)
{
L->length = 0;
return L->length;
}
int ListInesrt(SeqList* L, int i, ElemType x)
{
int j;
if (L->length == MaxSize)
{
printf("程序已满无法插入!\n");
return 0;
}
else if (i<1 || i>L -> length + 1)
{
printf("插入位序不合法\n");
return 0;
}
else
{
i--;
for (i = L->length; j> i; j--)
L->data = L->data;
L->data = x;
L->length++;
return 1;
}
}
int ListDelete(SeqList* L, int i ,ElemType* x)
{
int j;
if (L->length == 0)
{
printf("顺序表已无数据可删!\n");
return 0;
}
else if (i<1 || i>L ->length)
{
printf("删除位序不合法");
return 0;
}
else
{
i--;
x = L->data;
for (j = i; j <= L->length; j++)
L->length--;
return 1;
}
}
int ListGet(SeqList*
L, int i, ElemType* x)
{
if (i<1 || i>L->length)
{
printf("获取位置不合法!\n");
return 0;
}
else
{
x = L->data;
return 1;
}
}
void mian()
{
SeqList mylist;
int i, x;
ListInit(&mylist);
for (i = 1; i <= 10; i++)
ListInsert(&mylist, i, i);
ListDelete(&mylist, 4, &x);
for (i = 1; i<=length ; i++)
{
ListGet(i,&x);
printf("%d", x);
}
}
其中有几处错误找不到,希望大神能帮注意一下 #include <stdio.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data;
int length;
}SeqList;
int ListInit(SeqList *L)
{
L->length = 0;
return L->length;
}
int ListInesrt(SeqList *L, int i, ElemType x)
{
int j;
if (L->length == MaxSize)
{
printf("程序已满无法插入!\n");
return 0;
}
else if (i < 1 || i > L->length + 1)
{
printf("插入位序不合法\n");
return 0;
}
else
{
L->data = x;
L->length++;
return 1;
}
}
int ListDelete(SeqList* L, int i ,ElemType* x)
{
int j;
if (L->length == 0)
{
printf("顺序表已无数据可删!\n");
return 0;
}
else if ( i<1 || i > L->length)
{
printf("删除位序不合法");
return 0;
}
else
{
*x = L->data;
L->length = i - 1;
return 1;
}
}
int ListGet(SeqList *L, int i, ElemType* x)
{
if (i < 1 || i > L->length)
{
printf("获取位置不合法!\n");
return 0;
}
else
{
*x = L->data;
return 1;
}
}
void main() //main
{
SeqList mylist;
int i, x;
ListInit(&mylist);
for (i = 1; i <= 10; i++)
ListInesrt(&mylist, i, i);
ListDelete(&mylist, 4, &x);
for (i = 1; i <= mylist.length ; i++)
{
ListGet(&mylist, i, &x);
printf("%d ", x);
}
}
你这个delete和insert的具体需求是什么呢 1248762042 发表于 2021-10-24 18:28
你这个delete和insert的具体需求是什么呢
建立一个线性表 依次输入1.2.3.4.5.6.7.8.9删除数据元素5
页:
[1]