Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:16_II / из двух упор один
.cpp#include <iostream.h>
struct sp
{
int data;
sp *next;
};
void creat_sp(sp *&nach, int n)
{
sp *p;
nach=NULL;
int i;
for (i=1; i<=n; i++)
{
p=new sp;
cin>>p->data;
p->next=nach;
nach=p;
}
}
void pokaz_sp(sp *nach)
{
sp *p=nach;
cout<<"spisok=";
while (p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
void slit(sp *nach1,sp * nach2,sp *&nach)
{
sp * p= nach1, *q=nach2;
sp *t;
nach = NULL;
while ((p!=NULL)&&(q!=NULL))
{
if(p->data<q->data)
{
t=new sp;
t->data=p->data;
t->next=nach;
nach=t;
p=p->next;
}
else
{
t=new sp;
t->data=q->data;
t->next=nach;
nach=t;
q=q->next;
}
}
while(p!=NULL)
{
t=new sp;
t->data=p->data;
t->next=nach;
nach=t;
p=p->next;
}
while (q!=NULL)
{
t=new sp;
t->data=q->data;
t->next=nach;
nach=t;
q=q->next;
}
}
void sort(sp *nach)
{
sp *p;
bool l=false;
while(!l)
{
l=true;
p=nach;
while(p->next!=NULL)
{
if(p->data>(p->next)->data)
{
l=false;
int t=p->data;
p->data=(p->next)->data;
(p->next)->data=t;
}
p=p->next;
}
}
}
int main ()
{
sp *nach1, *nach2, *nach;
int n;
int m;
cout<<"n:";
cin>>n;
cout<<"m:";
cin>>m;
creat_sp(nach1, n);
pokaz_sp(nach1);
creat_sp(nach2, m);
pokaz_sp(nach2);
slit(nach1, nach2, nach);
sort(nach);
pokaz_sp(nach);
return 0;
}
Соседние файлы в папке 16_II