往一递增有序的顺序表中插入x,仍保持气有序性

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

 

#define overflow -2
#define list_init_size 100
typedef struct{
int *elem;
int length;
int listsize;
}Sqlist;

void Initlist(Sqlist *L)
{
L->elem=(int *)malloc(list_init_size*sizeof(int));
if(!L->elem)  exit(overflow);
L->length=0;
L->listsize=list_init_size;
}

void Input(Sqlist *L)
{
int length,i,x;
printf("/nPlease input the Slist length:/n");
scanf("%d",&length);
L->length=length;
printf("Please input %d elemts:/n",length);
for(i=0;i<length;i++)
 {
 scanf("%d",&x);
 L->elem[i]=x;
 }
}

void Output(Sqlist L)
{
int i;
printf("/nThe list elemt: /n");
for(i=0;i<L.length;i++)
 printf("%3d",L.elem[i]);
 printf("/n");
}

void Insert(Sqlist *L,int e)
{
int i;
int *newbase;
if(L->length>=L->listsize)
 {
 newbase=(int)malloc((10+list_init_size)*sizeof(int));
 if(!newbase) exit(overflow);
 L->elem=newbase;
 L->listsize=L->listsize+10;
 }
for(i=L->length-1; (i>=0)&&(L->elem[i]>e); i--)
 L->elem[i+1]=L->elem[i];

L->elem[i+1]=e;
L->length++;
}


void main()
{
Sqlist L;
int e;
Initlist(&L);
Input(&L);
Output(L);
printf("/nPlease input the insert elemt:/n");
scanf("%d",&e);
Insert(&L,e);
Output(L);
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值