鱼C论坛

 找回密码
 立即注册
查看: 2791|回复: 2

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

[复制链接]
发表于 2021-10-23 17:17:38 From FishC Mobile | 显示全部楼层 |阅读模式
10鱼币
#include <stdio.h>
#define MaxSize 100
typedef int ElemType;

typedef struct
{
        ElemType data[MaxSize];
        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
        {
                i--;
                for (i = L->length; j> i; j--)
                        L->data[j] = L->data[j - 1];
                L->data[i] = 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[i-1];
                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[i];
                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);
        }
}
其中有几处错误找不到,希望大神能帮注意一下

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-24 18:28:40 | 显示全部楼层
  1. #include <stdio.h>

  2. #define MaxSize 100

  3. typedef int ElemType;

  4. typedef struct
  5. {
  6.         ElemType data[MaxSize];
  7.         int length;
  8. }SeqList;

  9. int ListInit(SeqList *L)
  10. {
  11.         L->length = 0;

  12.         return L->length;
  13. }

  14. int ListInesrt(SeqList *L, int i, ElemType x)
  15. {
  16.         int j;
  17.         if (L->length == MaxSize)
  18.         {
  19.                
  20.             printf("程序已满无法插入!\n");
  21.             return 0;
  22.         }
  23.         else if (i < 1 || i > L->length + 1)
  24.         {
  25.             printf("插入位序不合法\n");
  26.             return 0;
  27.         }
  28.         else
  29.         {
  30.             L->data[i-1] = x;
  31.             L->length++;
  32.             return 1;
  33.         }
  34. }

  35. int ListDelete(SeqList* L, int i ,ElemType* x)
  36. {
  37.         int j;
  38.         if (L->length == 0)
  39.         {
  40.                 printf("顺序表已无数据可删!\n");
  41.                 return 0;
  42.         }
  43.         else if ( i<1 || i > L->length)
  44.         {
  45.                 printf("删除位序不合法");
  46.                 return 0;
  47.         }
  48.         else
  49.         {
  50.                 *x = L->data[i-1];
  51.                 L->length = i - 1;
  52.                 return 1;
  53.         }
  54. }
  55. int ListGet(SeqList *L, int i, ElemType* x)
  56. {
  57.         if (i < 1 || i > L->length)
  58.         {
  59.                 printf("获取位置不合法!\n");
  60.                 return 0;
  61.         }
  62.         else
  63.         {
  64.                 *x = L->data[i-1];
  65.                 return 1;
  66.         }
  67. }

  68. void main() //main
  69. {
  70.         SeqList mylist;
  71.         
  72.         int i, x;
  73.         
  74.         ListInit(&mylist);
  75.         
  76.         for (i = 1; i <= 10; i++)
  77.             ListInesrt(&mylist, i, i);
  78.             
  79.         ListDelete(&mylist, 4, &x);
  80.         
  81.         for (i = 1; i <= mylist.length ; i++)
  82.         {
  83.             ListGet(&mylist, i, &x);
  84.             printf("%d ", x);
  85.         }
  86. }
复制代码

你这个delete和insert的具体需求是什么呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-24 21:50:32 From FishC Mobile | 显示全部楼层
1248762042 发表于 2021-10-24 18:28
你这个delete和insert的具体需求是什么呢

建立一个线性表 依次输入1.2.3.4.5.6.7.8.9删除数据元素5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 04:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表