具体看代码
/*
将两个顺序表进行合并
*/
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100 //这个是顺序表的初始化大小
#define LISTINCREMENT 10 //这个是顺序表需要增加的单位长度
void PrintElem(int e){
printf("%d ",e);};
//使用结构体对顺序表进行表示
typedef struct {
int * elem;//这是指向这个结构体的指针变量
int length;//这是顺序表的长度
int listsize;//这是顺序表当前分配的大小,比如书里面给的100大小的空间
}SqList;
//顺序表初始化
void InitList_Sq(SqList *L){
//首先需要动态分配一个地址
//注意这个函数参数的位置,这里可以写成SqList *L,下面必须写成L->elem或者(*L).elem,
//如果是Sqlist &L 下面写的形式是L.elem(*L 表示的是指针,而&L是引用,说人话就是二者都可以
// 指向这个顺序表,&L可以理解为一个别名而已。先这样理解吧)
L->elem = (int *) malloc(LIST_INIT_SIZE*sizeof(int));
if(!(L->elem)){
return;
}
L->length=0;
L->listsize=LIST_INIT_SIZE;
}
//某个位置插入一个数
void ListInsert_Sq(SqList *L,int i,int e){
//在顺序表1-n的i位置之前插入一个数e