⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 插入.cpp

📁 数据结构的插入算法 非常简单的
💻 CPP
字号:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 10
#define LISTINCREMENT 10
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define NUM 10
typedef struct{
int *elem;
int length ;
int listsize;
}sqlist;
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;
return OK;
}
creat (sqlist *L)
{int i;
for(i=0;i<NUM;i++)
{scanf("%d",&L->elem[i]);
L->length++;
}


}
print(sqlist *L)
{int i;
for(i=0;i<L->length;i++)
printf("%d ",L->elem[i]);
printf("\n");
}
insert(sqlist *L,int i,int e)
{int *newbase;
int *q,*p;
if(i<1||i>L->length+1) return ERROR;
if(L->length>L->listsize) {
newbase=(int *)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(int));
if(!newbase) exit (OVERFLOW);
L->elem=newbase;
L->listsize+=LISTINCREMENT;
}
q=&(L->elem[i-1]);
p=&L->elem[L->length-1];
for(;p>q||(p==q);--p) *(p+1)=*p;
*q=e;
++L->length;
return OK;
}
main()
{ sqlist L1;
int i,e;
initlist ( &L1);
printf("input 10 integer:\n");
creat( &L1);
printf("input the position i and input the number e:\n");

scanf("%d%d",&i,&e ) ;

printf("before insert list:\n");
print( &L1);
insert( &L1, i, e);
printf("after insert list:\n");
print( &L1);

}

 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -