合并两个有序单链表
来源:互联网 发布:什么是网络接口 编辑:程序博客网 时间:2024/06/08 00:46
#include<stdio.h>#include <malloc.h>typedef struct linknode{ int data; linknode *next;} Node,*Linklist;//Linklist表示结构体指针Linklist CreateList_end(int n);//尾插法建立链表Linklist MergeLinklist(Linklist LA,Linklist LB);//将两个非递减的有序单链表合并成一个单链表void ShowList(Linklist L);//输出链表内容int main(void){ Linklist L1,L2,L; int n; scanf("%d",&n); L1=CreateList_end(n); L2=CreateList_end(n); L=MergeLinklist(L1,L2); ShowList(L); return 0;}Linklist CreateList_end(int n){ Linklist head=(Linklist)malloc(sizeof(Node)); Node *p,*e; p=head; int x; for(int i=0; i<n; i++)//尾插法建立链表 { e=(Linklist)malloc(sizeof(Node)); scanf("%d",&x); e->data=x; p->next=e; p=e; } p->next=NULL;//将链表的最后一个节点的指针域置空 return head;}void ShowList(Linklist L)//输出链表内容{ L=L->next; while(L) { printf("%d ",L->data); L=L->next; } printf("\n");}Linklist MergeLinklist(Linklist LA,Linklist LB)//将两个非递减的有序单链表合并成一个单链表{ Node *pa,*pb; Linklist LC,r;//将LC初始置空表。pa和pb分别指向两个单链表LA和LB中的第一个节点,r初始值为LC且r始终指向LC的表尾。 pa=LA->next; pb=LB->next; LC=LA; LC->next=NULL; r=LC; while(pa!=NULL&&pb!=NULL)//当两个表中均为处理完时,比较选择将较小值节点插入到新表LC中 { if(pa->data<=pb->data) { r->next=pa; r=pa; pa=pa->next; } else { r->next=pb; r=pb; pb=pb->next; } } if(pa)//若表LA未完,将表LA中后续元素链到新表LC表尾。 r->next=pa; else r->next=pb;//否则将表LA中后续元素链到新表LC表尾。 free(LB); return LC;}
阅读全文
1 0
- 合并两个有序单链表
- 合并两个有序单链表
- 合并两个有序单链表
- 两个有序单链表合并
- 合并两个有序单链表
- 合并两个有序单链表
- 合并两个有序单链表
- 合并两个有序单链表
- 两个有序单链表的合并&两个有序数组的合并
- 两个有序单链表的合并
- 合并两个有序的单链表
- 将两个有序单链表合并
- 合并两个有序的单链表
- 合并两个有序的单链表
- 合并两个有序单链表C++
- java 合并两个有序单链表
- 合并两个有序的单链表
- 合并两个有序的单链表
- java jvm gc常用参数
- 码农
- DAY1 计算机组成原理
- 哥德巴赫猜想升级
- BZOJ 2819: Nim 树剖,尼姆游戏
- 合并两个有序单链表
- fcm 模糊c均值java代码
- ubuntu14.04+caffe2
- MyBatis中mapper接口方法多参数传入
- uC/OS-III的任务管理
- Android Studio 配置使用 Kotlin
- 降维技术-理解PCA
- -01-生成ORB离散查找表【特征点检测】
- 1:HTML 中 onclick 触发函数 xxx(param) 要传递对象参数的解决方法 2:LocalStorage存储JSON对象的问题 3:ajax请求传送参数为对象问题