#include
#include
#include
#include
using namespace std;
typedef struct LinkNode
{
int data;
struct LinkNode *next;
}LinkNode;
void InitList(LinkNode *&L)
{
L=(LinkNode*)malloc(sizeof(LinkNode));
L->next=NULL;
}
void CreatList(LinkNode *&L,int a[],int n)
{
LinkNode *p;
L=(LinkNode*)malloc(sizeof(LinkNode));
L->next=NULL;
for (int i=0;imalloc(sizeof(LinkNode));
p->data=a[i];
p->next=L->next;
L->next=p;
}
}
void DisList1(LinkNode *L)
{
LinkNode *p=L->next;
printf("L1->");
while(p!=NULL)
{
printf("\t%d",p->data);
p=p->next;
}
printf("\n");
}
void DisList2(LinkNode *L)
{
LinkNode *p=L->next;
printf("L2->");
while(p!=NULL)
{
printf("\t%d",p->data);
p=p->next;
}
printf("\n");
}
void sort(LinkNode *&L)
{
LinkNode *p,*pre,*q;
p=L->next->next;
L->next->next=NULL;
while(p!=NULL&&p->data>=0)
{
q=p->next;
pre=L;
while(pre->next!=NULL&&pre->next->datadata)
{
pre=pre->next;
}
p->next=pre->next;
pre->next=p;
p=q;
}
}
int main()
{
LinkNode *L1,*L2;
int a[100],b[100];
int m=0,n=0;
char c=' ';
char d=' ';
while(c!='\n')
{
scanf("%d",&a[m]);
c=getchar();
m++;
}
while(d!='\n')
{
scanf("%d",&b[n]);
d=getchar();
n++;
}
//InitList(L1);
//InitList(L2);
CreatList(L1,a,m);
CreatList(L2,b,n);
DisList1(L1);
DisList2(L2);
sort(*&L1);
sort(*&L2);
DisList1(L1);
DisList2(L2);
}
怎么样才能使输出不包括-1呀?想了好久想不出来,还望各位神仙帮助一下我,感激不尽
在 sort 函数中,可以将条件 p->data>=0 加入到 while 循环中的判断条件中,如下所示。这样当数据为 -1 时,循环就会停止,并且不会输出 -1。
while(p!=NULL && p->data>=0)
{
//排序操作
}