小咕咚吃棉花糖 2021-09-28 23:02 采纳率: 40%
浏览 56
已结题

数据结构刚学,课后照着 teacher给的图片敲的,一模一样但是过不了好奇怪,前面四张图片是老师给的ta敲过正确的代码。求大家帮忙看看,谢谢~如果搞定了,给十元悬赏可以吗……

img

img

img

img


然后这是我照着打的

/文件名:1-1-blank.cpp/
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
ElemType elem[MaxSize];
int length;
} SqList;/顺序表类型定义/
void InitList(SqList *&L)/初始化顺序表L/
{
L=(SqList *)malloc(sizeof(SqList));//使用malloc函数给L分配所需的内存空间
L->length=0;//L的长度赋值为0
}
void DestroyList(SqList *L)/释放顺序表L/
{
free(L);//用free函数释放掉L
}
int ListEmpty(SqList *L)/判断顺序表L是否为空表/
{
return(L->length==0);//用return返回判断值
}
int ListLength(SqList *L)/返回顺序表L的元素个数/
{
return(L->length);//用return返回L的元素个数
}
void DispList(SqList *L)/输出顺序表L/
{
int i;
if (ListEmpty(L)) return;//判断L是否为空
for(i=0;ilength;i++)//用for语句来输出顺序表L
printf("%c",L->elem[i]);
printf("\n");
}
int GetElem(SqList *L,int i,ElemType &e)/获取顺序表L中第i个元素/
{
if(i<1 || i>L->length)//判断i的值是否符合要求
return 0;
e=L->elem[i-1]//e的值赋值为顺序表L中第i个元素
return 1;
}
int LocateElem(SqList *L, ElemType e)/在顺序表L中查找元素e/
{
int i=0;
while (ilength && L->elem[i]!=e) i++;//寻找匹配i,i必须小于顺序表L,并且i的位置的值正好是e
if (i>=L->length)
return 0;
else
return i+1;//返回位置
}
int ListInsert(SqList *L,int i,ElemType e)/在顺序表L中第i个位置上插入元素e/
{
int j;
if(i<1 || i>L->length+1)//判断i的值是否符合要求
return 0;
i--; /将顺序表位序转化为elem下标/
for(j=L->length;j>i;j--)/用for语句将elem[i]及后面元素后移一个位置/
L->elem[j]=L->elem[j-1];
L->elem[i]=e;
L->length++;

return 1;

}
int ListDelete(SqList *L,int i,ElemType &e)/顺序表L中删除第i个元素/
{
int j;
int j;//判断i的值是否符合要求
if(i<1 || i>L->length)
return 0;
i--; /将顺序表位序转化为elem下标/
e=L->elem[i];/将顺序表L中删除第i个元素,并将所有元素都上移一位/
for(j=i;jlength-1;j++)
L->elem[j]=L->elem[j+1];
L->length--;

return 1;

}
void main()
{SqList *L;
ElemType e;
printf("(1)初始化顺序表L\n");
InitList(L);
printf("(2)依次采用尾插入法插入a,b,c,d,e元素\n");
ListInsert(L,1,'a');
ListInsert(L,2,'b');
ListInsert(L,3,'c');
ListInsert(L,4,'d');
ListInsert(L,5,'e');
printf("(3)输出顺序表L:");
DispList(L);
printf("(4)顺序表L长度=%d\n", ListLength(L));
printf("(5)顺序表L为%s\n",(ListEmpty(L)?"空":"非空"));
GetElem(L,3,e);
printf("(6)顺序表L的第3个元素=%c\n",e);
printf("(7)元素a的位置=%d\n",LocateElem(L,'a'));
printf("(8)在第4个元素位置上插入f元素\n");
ListInsert(L,4,'f');
printf("(9)输出顺序表L:");
DispList(L);
printf("(10)删除L的第3个元素\n");
ListDelete(L,3,e);
printf("(11)输出顺序表L:");
DispList(L);
printf("(12)释放顺序表L\n");
DestroyList(L);
system("pause");
}

这个是老师给的原来要完成的代码

/文件名:1-1-blank.cpp/
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
ElemType elem[MaxSize];
int length;
} SqList;/顺序表类型定义/
void InitList(SqList *&L)/初始化顺序表L/
{
________________________________________//使用malloc函数给L分配所需的内存空间
________________________________________//L的长度赋值为0
}
void DestroyList(SqList *L)/释放顺序表L/
{
________________________________________//用free函数释放掉L
}
int ListEmpty(SqList *L)/判断顺序表L是否为空表/
{
________________________________________//用return返回判断值
}
int ListLength(SqList *L)/返回顺序表L的元素个数/
{
________________________________________//用return返回L的元素个数
}
void DispList(SqList *L)/输出顺序表L/
{
int i;
if (ListEmpty(L)) return;//判断L是否为空
________________________________________//用for语句来输出顺序表L
________________________________________
printf("\n");
}
int GetElem(SqList *L,int i,ElemType &e)/获取顺序表L中第i个元素/
{
________________________________________//判断i的值是否符合要求
return 0;
//e的值赋值为顺序表L中第i个元素
return 1;
}
int LocateElem(SqList *L, ElemType e)/在顺序表L中查找元素e/
{
int i=0;
while (
) i++;//寻找匹配i,i必须小于顺序表L,并且i的位置的值正好是e
if (i>=L->length)
return 0;
else
return ________________________________________;//返回位置
}
int ListInsert(SqList *L,int i,ElemType e)/在顺序表L中第i个位置上插入元素e/
{
int j;
________________________________________//判断i的值是否符合要求
return 0;
i--; /将顺序表位序转化为elem下标/
/用for语句将elem[i]及后面元素后移一个位置/

return 1;

}
int ListDelete(SqList *L,int i,ElemType &e)/顺序表L中删除第i个元素/
{
int j;
________________________________________//判断i的值是否符合要求
return 0;
i--; /将顺序表位序转化为elem下标/
/将顺序表L中删除第i个元素,并将所有元素都上移一位/

return 1;

}
void main()
{SqList *L;
ElemType e;
printf("(1)初始化顺序表L\n");
InitList(L);
printf("(2)依次采用尾插入法插入a,b,c,d,e元素\n");
ListInsert(L,1,'a');
ListInsert(L,2,'b');
ListInsert(L,3,'c');
ListInsert(L,4,'d');
ListInsert(L,5,'e');
printf("(3)输出顺序表L:");
DispList(L);
printf("(4)顺序表L长度=%d\n", ListLength(L));
printf("(5)顺序表L为%s\n",(ListEmpty(L)?"空":"非空"));
GetElem(L,3,e);
printf("(6)顺序表L的第3个元素=%c\n",e);
printf("(7)元素a的位置=%d\n",LocateElem(L,'a'));
printf("(8)在第4个元素位置上插入f元素\n");
ListInsert(L,4,'f');
printf("(9)输出顺序表L:");
DispList(L);
printf("(10)删除L的第3个元素\n");
ListDelete(L,3,e);
printf("(11)输出顺序表L:");
DispList(L);
printf("(12)释放顺序表L\n");
DestroyList(L);
system("pause");
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-09-29 09:11
    关注

    供参考:

    #include <stdio.h>
    #include <stdlib.h>
    #define MaxSize 50
    typedef char ElemType;
    typedef struct
    {
        ElemType elem[MaxSize];
        int      length;
    } SqList; //顺序表类型定义
    
    void InitList(SqList * &L) //初始化顺序表L
    {
        L = (SqList*)malloc(sizeof(SqList));//使用malloc函数给L分配所需的内存空间
        L->length = 0;       //L的长度赋值为0
    }
    void DestroyList(SqList* L) //释放顺序表L
    {
        free(L);//用free函数释放掉L
    }
    int ListEmpty(SqList* L) //判断顺序表L是否为空表
    {
        return(L->length == 0);//用return返回判断值
    }
    int ListLength(SqList* L) //返回顺序表L的元素个数
    {
        return(L->length);//用return返回L的元素个数
    }
    void DispList(SqList* L) //输出顺序表L
    {
        int i;
        if (ListEmpty(L)) return;//判断L是否为空
        for (i = 0; i < L->length; i++)//用for语句来输出顺序表L
            printf("%c", L->elem[i]);
        printf("\n");
    }
    int GetElem(SqList* L, int i, ElemType& e) //获取顺序表L中第i个元素
    {
        if (i<1 || i>L->length)//判断i的值是否符合要求
            return 0;
        e = L->elem[i - 1];    //e的值赋值为顺序表L中第i个元素
        return 1;
    }
    int LocateElem(SqList* L, ElemType e) //在顺序表L中查找元素e
    {
        int i = 0;
        while (i < L->length && L->elem[i] != e) i++;//寻找匹配i,i必须小于顺序表L,并且i的位置的值正好是e
        if (i >= L->length)
            return 0;
        else
            return i + 1;     //返回位置
    }
    int ListInsert(SqList* L, int i, ElemType e) //在顺序表L中第i个位置上插入元素e
    {
        int j;
        if (i<1 || i>L->length + 1)//判断i的值是否符合要求
            return 0;
        i--;                      //将顺序表位序转化为elem下标
        for (j = L->length; j > i; j--) //用for语句将elem[i]及后面元素后移一个位置
                L->elem[j] = L->elem[j - 1];
        L->elem[i] = e;
        L->length++;
        return 1;
    }
    int ListDelete(SqList* L, int i, ElemType& e) //顺序表L中删除第i个元素
    {
        int j;              //判断i的值是否符合要求
        if (i<1 || i>L->length)
            return 0;
        i--;             //将顺序表位序转化为elem下标
        e = L->elem[i];  //将顺序表L中删除第i个元素,并将所有元素都上移一位
        for (j = i; j < L->length - 1; j++)
                L->elem[j] = L->elem[j + 1];
        L->length--;
        return 1;
    }
    void main()
    {
        SqList* L;
        ElemType e;
        printf("(1)初始化顺序表L\n");
        InitList(L);
        printf("(2)依次采用尾插入法插入a,b,c,d,e元素\n");
        ListInsert(L, 1, 'a');
        ListInsert(L, 2, 'b');
        ListInsert(L, 3, 'c');
        ListInsert(L, 4, 'd');
        ListInsert(L, 5, 'e');
        printf("(3)输出顺序表L:");
        DispList(L);
        printf("(4)顺序表L长度=%d\n", ListLength(L));
        printf("(5)顺序表L为%s\n", (ListEmpty(L) ? "空" : "非空"));
        GetElem(L, 3, e);
        printf("(6)顺序表L的第3个元素=%c\n", e);
        printf("(7)元素a的位置=%d\n", LocateElem(L, 'a'));
        printf("(8)在第4个元素位置上插入f元素\n");
        ListInsert(L, 4, 'f');
        printf("(9)输出顺序表L:");
        DispList(L);
        printf("(10)删除L的第3个元素\n");
        ListDelete(L, 3, e);
        printf("(11)输出顺序表L:");
        DispList(L);
        printf("(12)释放顺序表L\n");
        DestroyList(L);
        system("pause");
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月7日
  • 已采纳回答 9月29日
  • 修改了问题 9月28日
  • 修改了问题 9月28日
  • 展开全部

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题