65,210
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include <ctime>
#include<cstdlib>
using namespace std;
class slist
{
public:
int data;
slist* next;
};
slist* first;
slist* create()
{
slist* newnode=NULL;
slist* back;
first=NULL;
cout<<"the old items of list:";
cout<<"the old items of list:";
for(int i=0;i<10;i++)
{
back=newnode;//back指向newnode
newnode=new slist;//建立新的节点
newnode->data=rand()%100;
cout<<newnode->data<<" ";
newnode->next=NULL;
if(first==NULL)
first=newnode;//first指向newnode
else
{
back->next=newnode;
}
}
back->next=NULL;
delete newnode;
cout<<endl;
return first;
}
slist * sort(slist *first)//对链表进行排序
{
int temp=0;
slist * p=first;
//排序算法没写好 楼主重新写下吧
for(int i=0;i<10;i++)
{
for(;p->next!=NULL;p=p->next)
{
if(p->data > p->next->data)
{
temp = p->data;
p->data = p->next->data;
p->next->data = temp;
}
}
}
cout<<"the new items of sort:";
p = first;
//i 未声明
int i = 0;
for(;i<10;i++)
{
cout<<p->data<<" ";
p=p->next;
}
return first;
}
slist * combine(slist * first1,slist * first2)
{
slist * first3=new slist;
first3->next=NULL;
slist * p,*q;
while(first!=NULL&&first2!=NULL)
{
if(first1->data<=first2->data)
{
p=first1->next;
first1->next=first3->next;
first3->next=first1;
first1=p;
}
else
{
q=first1->next;
first1->next=first3->next;
first3->next=first1;
first1=q;
}
}
for(int i=0;i<20;i++)
{
cout<<first3->data<<" ";
first3=first3->next;
}
return first3;
}
int main()
{
slist * list1;//创建节点指针为了接管一个链表
slist * list2;
slist * list3;
// slist * first1,first2;
list1=create();
list2=create();
list1=sort(list1);
list2=sort(list2);
list3=combine(list1,list2);
system("pause");
return 0;
}