链表合并
来源:互联网 发布:grub2 引导linux 编辑:程序博客网 时间:2024/06/06 03:39
设有两个无头结点的单链表,头指针分别为ha,hb,链中有数据域data,链域next,两链表的数据都按递增序存放,现要求将hb表归到ha表中,且归并后ha仍递增序,归并中ha表中已有的数据若hb中也有,则hb中的数据不归并到ha中,hb的链表在算法中不允许破坏。
#include<stdio.h> /// no have dead node ha and hb >>ha#include<stdlib.h>typedef int ElemType;typedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;LinkList CreateLink(int n) /// 创建表{ LinkList h=(LinkList)malloc(sizeof(LNode)),q; scanf("%d",&h->data); h->next=NULL; q=h; for(int i=1;i<n;i++){ LinkList p=(LinkList)malloc(sizeof(LNode)); scanf("%d",&p->data); p->next=NULL; q->next=p; q=p; } return h; /// 返回头指针}void print(LinkList h);LinkList MergeList(LinkList ha,LinkList hb){ LinkList p,hc,pc; p=(LinkList)malloc(sizeof(LNode)); p->next=NULL; hc=pc=p; while(ha&&hb) { if(ha->data < hb->data){ p=(LinkList)malloc(sizeof(LNode)); p->next=NULL; p->data=ha->data; pc->next=p;pc=p;ha=ha->next; } else if(ha->data > hb->data){ p=(LinkList)malloc(sizeof(LNode)); p->next=NULL; p->data=hb->data; pc->next=p;pc=p;hb=hb->next; } else{ /** p=(LinkList)malloc(sizeof(LNode)); p->next=NULL; p->data=ha->data; pc->next=p; pc=p; ha=ha->next; */ hb=hb->next; /// ha中有hb的元素,hb直接指向下一结点 } } pc->next=ha?ha:hb; /// 指向剩余的链表 return hc->next; /// 返回无头结点的指针}void print(LinkList h){ while(h!=NULL){ printf("%d ",h->data); h=h->next; } printf("\n");}int main(){ int n,m; scanf("%d",&n); ///ha LinkList ha=CreateLink(n); scanf("%d",&m); ///hb LinkList hb=CreateLink(m); printf("\nBefore MergeList\n"); print(ha); print(hb); ha=MergeList(ha,hb); printf("After MergeList\n"); print(ha); print(hb); return 0;}/**61 5 7 9 34 7550 4 5 5 76*/
实验结果,hb插入ha中,并且hb不变,ha仍然递增
0 0
- 有序链表合并&有序数组合并
- 有序链表合并
- C++合并链表
- 合并链表操作
- 合并两个链表
- 合并有序链表
- 链表的合并
- 合并链表
- 链表合并算法
- 合并有序链表
- 合并有序链表
- 合并有序链表
- 有序链表合并
- 链表合并
- 合并有序链表
- 合并链表
- 链表合并算法
- 合并有序链表
- py2exe使用教程(八)——配置选项(优化和绑定)
- 多线程编程1(互斥对象、简单火车售票系统)
- HDU 3879 Base Station 最大权闭合图
- 接外包项目,如何远离垃圾客户
- 黑马程序员--第一天学习
- 链表合并
- Meeting --- Codeforces
- IE 兼容性改造Js点滴积累
- 扩展欧几里得
- 【堆积如山的未解决题目OTZ】
- [LeetCode] Longest substring without repeated characters
- 技术普及帖:你刚才在淘宝上买了一件东西
- Ubuntu 不显示时间了
- js对象创建的方式及其优势和不足7