摘要:```c//有序线性表的有序合并//思路是合并后对合并后的链表进行排序#include#includetypedefstructnode{intdata;structnode*next;}node,*……
int i,j,k,flag=1,len_a,len_b,len_c,y; while(scanf("%d",&y)!=EOF) { if(flag%2) { for(i=0;i<y;i++) { scanf("%d",&La[i].x); } len_a=y; } else { for(i=0;i<y;i++) { scanf("%d",&Lb[i].x); } len_b=y; } flag++; if(flag%2) { len_c=len_a+...
为使LC中元素按值非递减有序排列,可设两个指针 i 和 j 分别指向LA和LB中某个元素,若设 i 当前所指的元素为 a,j 所指的元素为 b,则当前应插入到 LC 中的元素 c 为 c = a < b ? a : b显然,指针 i 和 j 的初值均为1(实际写代码时往往是从 0 开始的),在所指元素插入 LC 之后,在 LA 或者...
1,计算La的元素个数赋值给numOfLa;计算Lb的元素个数赋值给numOfLb;2,分配能够容纳numOfLa+numOfLb个元素的内存空间,首地址指针为pRes;3,设置变量counterLa并赋初值0,设置变量counterLb并赋初值0,设置变量counterRes并赋初值0 4,当counterLa < numOfLa 并且 counterLb < numOfLb时做以下步:4.1...
int merge(int *a,int n1,int *b,int n2,int *s){ int i=0,j=0,k=0;while(i<n1&&j<n2){ if(a[i]>b[j]){ if(k&&s[k-1]==b[j])//有重复元素 j++;else s[k++]=b[j++];} else{ if(k&&s[k-1]==a[i])//有重复元素 i++;else s[k++]=a[i++];} } w...
(转)合并两个有序线性表的元素(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[...
1 #include 2 #define MAX 20 3 int main() 4 { 5 int a[4] = {3,5,8,11}; 6 int b[7] = {2,6,8,9,11,15,20}; 7 int i = 0,j = 0; 8 int c[MAX]; 9 int tmp = 0;
void MergeList_Sq(SqList *La,SqList *Lb,SqList *Lc)/*将两个顺序有序表A和B合并为一个有序表C。*/ { elemtype *pa,*pb,*pc,*pa_last,*pb_last; pa=La->elem;pb=Lb->elem; Lc->listsize =Lc->length =La->length +Lb->length ; pc=Lc->elem =(elemtype *)malloc(Lc->listsize *...
free、malloc的用法需要搞清楚,free()参数是 基地址(明白课本上的为伪C代码) 在2-销毁、12-显示线性表的switch分支中,增加一个输入 实行单独判断,单独功能实现,在涉及操作线性表的功能分支中,需要增加判断线性表是否存在,不存在显示提示信息 对于插入和删除指定位置的元素,需要明白index位置的元素 对应于元素 my_li...
public class C { public static void main(String[] args) { int La[]={2,4,6,7,9},Lb[]={1,5,7,8};int temp[]=new int[La.length+Lb.length];//连接两个数组 for(int i=0;i<La.length;i++){ temp[i]=La[i];} for(int i=0;i<Lb.length;i++){ temp[La.length+...