程序修改(创建一个顺序表,并实现插入、删除算法)

(1)创建一个空的顺序表L(2)依次插入a,b,c,d,e五个元素(3)在第4个元素位置上插入元素f(4)删除L的第3个元素(5)输出顺序表L#include<stdio... (1)创建一个空的顺序表L
(2)依次插入a,b,c,d,e五个元素
(3)在第4个元素位置上插入元素f
(4)删除L的第3个元素
(5)输出顺序表L
#include<stdio.h>
#include<malloc.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{ ElemType elem[MaxSize];
int length;
}SqList;

SqList * InitList( )
{ SqList * L;
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
return L;
}

void DispList(SqList *L)
{ int i;
if(L->length==0) return;
for (i=0;i<L->length;i++)
printf("%c",L->elem[i]);
printf("\n");
}

void ListInsert(SqList * L,int i,ElemType e)
{ int j;
if(i<1 || i>L->length+1) return;
i--;
for(j=L->length; j>i; j--)
L->elem[j]=L->elem[j-1];
L->elem[i]=e;
L->length++;
}

void ListDelete(SqList * L,int i)
{ int j;
if(i<1 || i>L->length) return;
i--;
for(j=i; j<L->length-1; j++)
L->elem[j]=L->elem[j+1];
L->length--;
}

main()
{ SqList *L;
int i;
char f;
InitList(&L);
printf("Please enter char:\n");

for(i=0;i<5;i++)
{
scanf("%c",&(L->elem[i]));
L->length++;

}

printf("\n");
printf("Please a enter char:\n");
scanf("%c",&f);
ListInsert(L,4,f);
printf("\n");
ListDelete(L,3);
DispList(L);

}
展开
 我来答
鷹弈
2011-10-26 · TA获得超过5194个赞
知道大有可为答主
回答量:1257
采纳率:0%
帮助的人:614万
展开全部
都是些小问题

注意输入时,中间不能有空格,如输入:12345回车0,输出:12045

已改(后面有注释):

#include <stdio.h>
#include <stdlib.h>

#define MaxSize 50

typedef char ElemType;

typedef struct
{ ElemType elem[MaxSize];
int length;
}SqList;

SqList *InitList(void)
{
SqList *L = NULL;

L = (SqList *) malloc (sizeof(SqList));
L->length = 0;

return L;
}

void DispList(SqList *L)
{
int i;
if (L->length == 0)
{
return;
}
for (i=0; i<L->length; i++)
{
printf("%c", L->elem[i]);
}
printf("\n");
}

void ListInsert(SqList * L, int i, ElemType e)
{
int j;

if ((i < 1) || (i > L->length))
{
return;
}

i--;

for (j=L->length; j>i; j--)
{
L->elem[j] = L->elem[j-1];
}

L->elem[i] = e;

L->length++;
}

void ListDelete(SqList * L, int i)
{
int j;
if ((i < 1) || (i > L->length))
{
return;
}

i--;

for (j=i; j<L->length-1; j++)
{
L->elem[j] = L->elem[j+1];
}

L->length--;
}

int main(void)
{
SqList *L = NULL;
int i;
char f;

L = InitList();//去掉&L,加上L =

printf("Please enter char:\n");

for(i=0; i<5; i++)
{
scanf("%c",&(L->elem[L->length++]));

}
fflush(stdin);//防止回车字符被下个scanf吃掉

printf("\n");
printf("Please a enter char:\n");
scanf("%c",&f);
ListInsert(L,4,f);
printf("\n");
ListDelete(L,3);
DispList(L);
}
过路小鬼A
2011-10-26 · TA获得超过312个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:149万
展开全部
学习中...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式