永发信息网

求助顺序表插入的问题!!!

答案:1  悬赏:40  手机版
解决时间 2021-02-01 01:21
求助顺序表插入的问题!!!
最佳答案
#include
#include
#define MAXSIZE 100
typedef int ElemType;
typedef struct list
{
ElemType *elem;
int listsize;
int length;
}Sqlist;

void initlist_sq(Sqlist *L)
{
L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType));
if(!L->elem) exit(0);
L->length=0;
L->listsize=MAXSIZE;
}

void insert_sq(Sqlist *L,int n,int x)
{
int i=0;
if(n<0||n>(L->length))
{printf("错误");
exit(1);}
if(L->length==MAXSIZE)
{printf("overflow");
exit(1);
}
if(n>=0&&nlength)
*(L->elem+n)=x;
if(n==(L->length))
{*(L->elem+n)=x;
L->length=L->length+1;}

//printf("**********Sqlist inserted**********\n");
}

void creat_sq(Sqlist *L)
{
int tablen,i=0;
ElemType temp;
printf("please input the table length\n");
scanf("%d",&tablen);
printf("please input a serial number\n");
do
{
scanf("%d",&temp);
insert_sq(L,i,temp);
i++;
}while((ilistsize ));
}

void display_sq(Sqlist *L)
{
int i;
i=0;
do {printf("%d ",*(L->elem+i));}
while(++ilength);
printf("\n**********Sqlist diplay**********\n");
}
Search_sq(Sqlist *L,int x)
{
int i;
for(i=0;ilength;i++)
{if(L->elem[i]==x)
return i+1;
}
return 0;
}

void delete_sq(Sqlist *L,int pos)
{
int i=0;
if(pos<1&&pos>L->length)
{printf("错误");
exit(0);
}
if(pos>=1&&poslength)
{ for(;poslength;pos++)
*(L->elem+pos)=*(L->elem+pos+1);}

L->length=L->length-1;

printf("\n**********%d deleted**********\n",pos);
}
int main(void)
{
Sqlist L1;
ElemType temp;
char cmd;
int i=0;
initlist_sq(&L1);
printf("X=EXIT,C=CREAT,P=DISPLAY,I=INSERT,S=SEARCH,D=DELETE\n");

while(1)
{
cmd=getchar();
switch(cmd)
{
case 'C':
case 'c':
creat_sq(&L1);
printf("X=EXIT,C=CREAT,P=DISPLAY,I=INSERT,S=SEARCH,D=DELETE\n");
break;
case 'I':
case 'i':
printf("please input the number to be inserted\n");
scanf("%d",&temp);
printf("please input the position to be inserted(1~100)\n");
scanf("%d",&i);
insert_sq(&L1,i-1,temp);
printf("**********Sqlist inserted**********\n");
printf("X=EXIT,C=CREAT,P=DISPLAY,I=INSER,S=SEARCT,D=DELETE\n");
break;
case 'S':
case 's':
printf("please input the number wanted\n");
scanf("%d",&temp);
printf("位置:%d\n",Search_sq(&L1,temp));

printf("X=EXIT,C=CREAT,P=DISPLAY,I=INSERT,S=SEARC,D=DELETE\n");
break;
case 'P':
case 'p':
display_sq(&L1);
printf("X=EXIT,C=CREAT,P=DISPLAY,I=INSERT,S=SEARC,D=DELETE\n");
break;
case 'X':
case 'x':
free(L1.elem);
return 1;
case 'd':
case 'D':
printf("请输入要删除的位置\n");
scanf("%d",&temp);
delete_sq(&L1,temp-1);
printf("X=EXIT,C=CREAT,P=DISPLAY,I=INSERT,S=SEARC,D=DELETE\n");
break;

default:break;
}
}

//getchar();
return 1;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
离婚了我净身出户!老公说给我50万没有写在离
中国社会调查所是不是骗子单位
倔头倔脑的意思是什么啊?知道的请说下!
NT3.1 唐氏低风险还需要做无创DNA或羊穿吗
大连的二本大学有哪些
卡罗拉,威朗,速腾,308选哪个好
80后的动画,一个小男孩控制一个小机器人,打
青插手的意思是什么啊?知道的请说下!
赵老师,请问一个菜鸟问题:c#中,静态函数可
下列过程一定能够导致DNA分子结构发生改变的
前置后驱和前置前驱哪个好?
我小孩下半年读四年级了读寄托学校会小吗
有谁知道胡三太爷胡三太奶和黄三太爷黄三太奶
电脑主板不干净,想清洗一下,不知应该用什么
有个人他网上借贷一直逾期不还,为什么他还能
推荐资讯
单选题受教育是法律赋予我们的基本权利,当我
问一下 长安cs35 2016款 手动豪华型 全部办好
韩红映山红伴奏,谢谢,急
深圳哪里有对讲机出租的呢?我想租两三天用用
长春工业大学的工业工程研究生怎么样?
室内消火栓水带长度不应超过(  )。A.20mB
换防盗门的邻居们,旧的防盗门小区有收的吗,
什么相亲网站靠谱点
哪一刻,你感受到了中国的强大
个体户如何交税
大理到自贡火车多少小时
关于莱州市家家悦,熟悉的老乡告诉下,谢了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?