www.gsyw.net > 在数据结构中,将两个带头结点的循环单链表hEADA和hEADB合并为hEADA

在数据结构中,将两个带头结点的循环单链表hEADA和hEADB合并为hEADA

将两个循环单链表合并为一个循环单链表的算法如下先找到两个链表的尾,并分别由指针p、q指向它们,然后将第一个链表的尾与第二个表的第一个结点链接起来,并修改第二个表的尾Q,使它的链域指向第一个表的头结点.LinkList merge_1

很简单的 你把链表La的末节点指向LB的头节点的下一个节点,把LB的末节点变为NULL即可!

/////////////////////////////////////////////////////////////// 循环单链表的合并// 作者:悉雨辰寂// 时间:2008年4月4日// 说明: 循环单链表的合并///////////////////////////////////////////////////////////

设第一个元素的序号为1,因此为奇数,若第一个元素的序号为0则A,B反过来赋值即可.void SepList(ListNode *pSrc, ListNode **pLA, ListNode **pLB) { ListNode *pCur = pSrc; ListNode *pA; ListNode *pB; *pLA = (ListNode*)malloc(sizeof(

直接把hb的头部连在ha的尾部就可以了.typedef struct ListNode{ int data; ListNode *next;}ListNode,*List;List Merge_List( List ha , List hb ){ List tail = ha; if( !ha || !hb || !hb->next || ha->next ) //有一个链表为空 return (ha || ha->next)?ha:hb; while( tail->

我用递归的方法写了个#include <stdio.h>#include <malloc.h>int num=0;typedef struct node{ int data; struct node *next;}list,*listnode;void createlist(listnode *lnode,int x[])//递归的方法创建链表 { if(num<5) { *lnode=(list *)malloc(sizeof(list)); (*lnode)->

遍历找到L1的链表尾 然后将表尾结点指针指向L2的第一个结点即可 如果代码不想自己写的话 我可以有偿代劳

你要的是个算法还是代码?

一、 需求分析: 题目: 实现两个链表的合并 问题描述: 1. 建立两个链表 A 和 B,链表元素个数分别为 m 和 n 个. 2. 假设元素分别为(x1,x2,xm),和(y1,y2, yn)

相关搜索:

网站地图

All rights reserved Powered by www.gsyw.net

copyright ©right 2010-2021。
www.gsyw.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com