// 向线性表插入元素 bool add_list(List* li, int data){ if(li->top >= li->length){ return false;} li->data[li->top++] = data;return false;} // 将两个线性表合并并对元素进行排序 void merge_list(List *dest, List *li1, List *li2){ list_init(dest, li1->top+...
printf("输入第二个数组元素个数:");scanf("%d",&n2);printf("输入%d个升序元素(空格隔开):",n2);for(i=0;i<n2;i++)scanf("%d",&b[i]);n3=merge(a,n1,b,n2,s); //a和b数组的元素合并到s数组里去(并消除重复元素),并返回合并后数组的元素个数 printf("合并后元素数组为...
改进:由于A、B是排好序的,先把A丢进C里,再拿B元素一个个往里查找插入。这么做要频繁移动元素,如果线性表不是链表的话,开销很大。再改进:从A、B中各拿一个元素出来,比较后把小的放进C里,再从刚才拿出元素的那个表里再拿个元素出来,再比较,把小的放进C里,重复这样的操作,直到A、B...
(转)合并两个有序线性表的元素(C语言版) 博客分类: 数据结构,线性表排序//合并两个有序线性表的元素保证无重复元素 #include<stdio.h> struct LinerList { int *list; int size; int MAXSIZE; }; int main() { int list1[15]={2,5,7,8,10,14,19,22,25,30}; int list2[...
define OK 1 define ERROR 0 typedef struct { int *elem;int length;int listsize;} SqList;int InitList_Sq(SqList *L,int len){ //构造一个空的线性表L,该线性表预定义大小为len L->elem=(int *)malloc(sizeof(int)*len);if(!L->elem) return ERROR;L->length=0;L->listsize...
void main() { Sqlist L,L1; InitList(&L); InitList(&L1); ListInsert(&L, 1, 2); ListInsert(&L, 2, 3); ListInsert(&L, 1, 1); ListInsert(&L1,1,1); ListInsert(&L1,2,2); ListInsert(&L1,3,4); for (int i = 0; i <L1.length; i++) ...