柿子QAQ 发表于 2021-10-23 17:17:38

求助:数据结构中队列的错误

#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);
        }
}
其中有几处错误找不到,希望大神能帮注意一下

1248762042 发表于 2021-10-24 18:28:40

#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的具体需求是什么呢

柿子QAQ 发表于 2021-10-24 21:50:32

1248762042 发表于 2021-10-24 18:28
你这个delete和insert的具体需求是什么呢

建立一个线性表 依次输入1.2.3.4.5.6.7.8.9删除数据元素5
页: [1]
查看完整版本: 求助:数据结构中队列的错误