首页 > 代码库 > 链表合并
链表合并
设有两个无头结点的单链表,头指针分别为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=http://www.mamicode.com/ha->data;>
实验结果,hb插入ha中,并且hb不变,ha仍然递增
链表合并
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。