编译通过,但程序意外停止。
#include<stdio.h>#include<malloc.h>
#include<iostream.h>
#include<conio.h>
#define N 10
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*Linklist;
void Add(Linklist&L)
{
int k[N],i;
LNode *L3,*p;
p=L->next;
for(i=0;p;i++)
{
k[i]=p->data;
p=p->next;
}
L3=(Linklist)malloc(sizeof(LNode));
L3->next=NULL;
p=L3->next;
while(--i>=0)
{
p=(Linklist)malloc(sizeof(LNode));
p->data=k[i];
p=p->next;
}
p=L3->next;
while(p)
{
cout<data<<" ";
p=p->next;
}
}
void main()
{
int i;
LNode *L1,*L2,*p;
cout<<endl<<"请输入4个数,按升序排列。";
L1=(Linklist)malloc(sizeof(LNode));
L1->next=NULL;
p=L1;
for(i=0;i<4;i++)
{
p=(Linklist)malloc(sizeof(LNode));
cin>>p->data;
p=p->next;
}
cout<<endl<<"请输入6个数,按升序排列。";
L2=(Linklist)malloc(sizeof(LNode));
L2->next=NULL;
p=L2;
for(i=0;i<6;i++)
{
p=(Linklist)malloc(sizeof(LNode));
cin>>p->data;
p=p->next;
}
if(L1->next->data>L2->next->data)
{
Add(L1);
Add(L2);
}
else
{
Add(L2);
Add(L1);
}
}
问题描述:两个单链表元素按升序排列,将两个单链表合并为一个新链表按降序排列,保留原两个单链表的结点,合并后的单链表用新链表存储。 该代码编译时没出错,但运行时程序会意外停止,请高手指教一下,为什么会这样?