#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
} LNode,*linklist;
void double1(linklist &L)
{ linklist p,q1,q2,r1,r2;
linklist r;
int n;
L=new LNode;
L->next=NULL;
r=L;
//cout<<endl;
cout<<"请输入链表长度:";
cin>>n;
cout<<"请输入"<<n<<"个数(同时带有正整数和负整数):";
for(int i=0;i<n;i++)
{ p=new LNode;
cin>>p->data;
p->next=NULL;
r->next=p;
r=p;
cout<<p->data<<" ";
}
p=L->next;
for(int i=0;i<n;i++)
{
if(p->data>0)
{ {
q1=new LNode;
q1->next=NULL;
// r1->next=q1;
r1=q1; //r1是尾指针
cout<<"正数链表:";
//for(i=0;i<n;i++){
for(i=0;i<n;++i)
{
r1->next=p;
r1=p;
// q1=L->next;
p=L->next;
cout<<r1->data<<" ";
}
}
}
else{ {
q2=new LNode;
q2->next=NULL;
// r1->next=q1;
r2=q2; //r2也是尾指针
cout<<"负数链表:";
//for(i=0;i<n;i++){
for(i=0;i<n;i++)
{
r2->next=p;
r2=p;
//q2=L->next;
p=L->next;
cout<<r2->data<<" ";
}
}
}
}}
int main(){
linklist L;
double1(L);
}
运行结果如下(只是对第一个数值进行乐判断,之后的数值并没有判断),求各位大佬解答,谢谢!
题目要求:
创建一个任意数值的单链表,拆分成两个链表,分别为大于0和小于0: