单链表合并问题(直接交叉合并)

gucheng789 2010-03-11 11:40:01
单链表合并源程序代码如下:就是使两条单链表交叉合并
函数MergeList(List La,List Lb)好像有点问题啊,大虾们帮忙调试 一下下啊!!!!!
#include"iostream.h"
typedef struct LNode
{
int data;
LNode *next;
}*List;
List CreateList()
{
List h,L,s;L=new LNode;
L->next=NULL;
h=L;
for(int i=0;i<3;i++)//单链表长度为3
{
s=new LNode;
cin>>s->data;
s->next=h->next;
h->next=s;
h=s;
}
return L;
}
void PrintList(List L)
{
if(L)
{
L=L->next;
while(L)
{ cout<<L->data;
L=L->next;
}
}
}
void MergeList(List La,List Lb)//单链表合并
{
La=La->next;Lb=Lb->next;
List s;
while(La&&Lb)
{
s=Lb;
s->next=La->next;
La->next=s;
Lb=Lb->next;La=La->next;
cout<<"AAAA/n";
}
PrintList(La);
}
void main()
{ List La,Lb;
La=CreateList();Lb=CreateList();//单链表长度为3
MergeList(La,Lb);//合并
PrintList(La); PrintList(Lb);//打印单链表
}
...全文
265 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jiao319 2010-03-14
  • 打赏
  • 举报
回复
已修改完毕,可以运行产生合理的结果
Jiao319 2010-03-14
  • 打赏
  • 举报
回复
#include <iostream.h>

typedef struct LNode
{
int data;
LNode *next;
}List;

List * CreateList()
{
List *head, *s;

head = (List *)new LNode;
head ->next=NULL;

for(int i=0;i<3;i++)//单链表长度为3
{
s = (List *)new LNode;
cin>>s->data;
s->next = head->next;
head->next=s;
}
return head;
}

void PrintList(List * L)
{
List *temp;
temp = L->next;
while(temp)
{
cout<<temp->data<<" ";
temp = temp->next;
}
}

void MergeList(List * La,List * Lb)//单链表合并
{
List *ta, *tb, *temp;

ta = La->next;
tb = Lb;
while(ta && tb->next)
{
temp = tb->next;
tb->next = temp->next;
temp->next = ta->next;
ta->next = temp;
ta = temp->next;
}
PrintList(La);
}

void main()
{
List *La, *Lb;
La=CreateList();
Lb=CreateList();//单链表长度为3
MergeList(La,Lb);//合并
}
V68V6 2010-03-13
  • 打赏
  • 举报
回复
up。。。
gucheng789 2010-03-12
  • 打赏
  • 举报
回复
悲哀~~~
自己顶

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧