链表问题,求帮忙谢谢

xyivan 2012-03-10 11:19:11
#include "iostream.h"
#include "stdlib.h"
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;

void CreatList_L(LinkList L,int n);
LinkList MergeList_L(LinkList La, LinkList Lb, LinkList Lc);

int main()
{
LinkList L1 = NULL, L2 = NULL;
LinkList p = NULL, Lc = NULL; //要用到的指针
CreatList_L(L1, 4);
CreatList_L(L2, 4);
cout<<"当前两个链表分别为:"<<endl;
p = L1->next;
while(p) //输出
{
cout<<p->data<<endl;
p = p->next;
cout<<"\n"<<endl;
}
p = L2->next;
while(p)
{
cout<<p->data<<endl;
p = p->next;
cout<<"\n"<<endl;
}
MergeList_L(L1, L2, Lc);
cout<<"修改后的链表为:"<<endl;

p = L1->next;
while(p) //输出
{
cout<<"p->data "<<endl;
p = p->next;
}

return 0;
}

void CreatList_L(LinkList L,int n)
{
int i;
LinkList p = NULL;
cout<<"新建带有四个节点的链表,并按升序输入四个节点的值\n"<<endl;
L= (LinkList)malloc(sizeof(LNode));
L->next = NULL;
for(i = n; i >0; --i)
{
p = (LinkList)malloc(sizeof(LNode));
cin>>p->data;
p->next = L->next;
L->next = p;
}
}

LinkList MergeList_L(LinkList La, LinkList Lb, LinkList Lc)
{
LinkList pa, pb, pc;
pa = La->next;
pb = Lb->next;
Lc = pc = La;
while(pa && pb)
{
if(pa->data <= pb->data)
{
pc->next = pa;
pc = pa;
pa = pa->next;
}
else
{
pc->next = pb;
pc = pb;
pb = pb->next;
}
pc->next = pa ? pa : pb;
free(Lb);
}
return La;
}

不知道为什么错误。
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdsnfresh 2012-03-11
  • 打赏
  • 举报
回复
这,你是大一开始学吧,写得实在很难看
无芒 2012-03-11
  • 打赏
  • 举报
回复

#include <iostream>
#include <stdlib.h>
using namespace std;

typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;

void CreatList_L(LinkList &L,int n);
LinkList MergeList_L(LinkList &La, LinkList Lb, LinkList Lc);

int main()
{
LinkList L1 = NULL, L2 = NULL;
LinkList p = NULL, Lc = NULL; //要用到的指针
CreatList_L(L1, 4);
CreatList_L(L2, 4);
cout<<"当前两个链表分别为:"<<endl;
p = L1->next;
while(p) //输出
{
cout<<p->data<<endl;
p = p->next;
cout<<"\n"<<endl;
}
p = L2->next;
while(p)
{
cout<<p->data<<endl;
p = p->next;
cout<<"\n"<<endl;
}
MergeList_L(L1, L2, Lc);
cout<<"修改后的链表为:"<<endl;

p = L1->next;
while(p != NULL) //输出
{
cout<<"p->data "<<endl;
p = p->next;
}

return 0;
}

void CreatList_L(LinkList &L,int n)
{
int i;
LinkList p = NULL;
cout<<"新建带有四个节点的链表,并按升序输入四个节点的值\n"<<endl;
L= (LinkList)malloc(sizeof(LNode));
L->next = NULL;
for(i = n; i >0; --i)
{
p = (LinkList)malloc(sizeof(LNode));
cin>>p->data;
p->next = L->next;
L->next = p;
}
L->next = NULL;
}

LinkList MergeList_L(LinkList &La, LinkList Lb, LinkList Lc)
{
LinkList pa, pb, pc;
pa = La->next;
pb = Lb->next;
Lc = pc = La;
while(pa && pb)
{
if(pa->data <= pb->data)
{
pc->next = pa;
pc = pa;
pa = pa->next;
}
else
{
pc->next = pb;
pc = pb;
pb = pb->next;
}
pc->next = pa ? pa : pb;

}
free(Lb);
free(pb);
return La;
}

quwei197874 2012-03-11
  • 打赏
  • 举报
回复
传指针堵塞指针也行
liuchunpeng 2012-03-11
  • 打赏
  • 举报
回复
void CreatList_L(LinkList L,int n)定义错了。
改为void CreatList_L(LinkList& L,int n)应该可以,
因为需要传递的是指针的地址,否则在函数内分配的指针在函数外是得不到的。
logiciel 2012-03-11
  • 打赏
  • 举报
回复
void CreatList_L(LinkList L,int n)
改为
void CreatList_L(LinkList &L, int n)
xyivan 2012-03-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 czh3642210 的回复:]
怎么个错法?
[/Quote]
运行后,打印输入的数字那步报错
面包大师 2012-03-10
  • 打赏
  • 举报
回复
怎么个错法?

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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