程序修改(创建一个顺序表,并实现插入、删除算法)
(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);
} 展开
(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);
} 展开
2个回答
展开全部
都是些小问题
注意输入时,中间不能有空格,如输入: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);
}
注意输入时,中间不能有空格,如输入: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);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询