#include <iostream>
#include <conio.h>
using namespace std;
struct node
{
int data;
node* link;
};
node* list=NULL;
node* l1=NULL;
node* l2=NULL;
void dumplist(node* list)
{
if(list!=NULL)
{
int i=1;
node* ylist=list;
do
{
cout<<" Listenin "<<i++<<" .Nodunun Adresi: "<<list<<" Datasý: "<<list->data<<" Linki: "<<list->link<<endl;
list=list->link;
}while(list!=ylist);
}
}
node * newnode()
{
node* newnode=new node;
newnode->link=newnode;
return newnode;
}
node* last(node* list)
{
if(list!=NULL)
{
node* ylist=list;
while(list->link!=ylist)
list=list->link;
}
node* last=list;
return last;
}
void addhead(node* node_, node*& list)
{
if(node_!=NULL)
if(list==NULL)
list=node_;
else
{
node_->link=list;
last(list)->link=node_;
list=node_;
}
}
void concatenate(node*& l1, node* l2)
{
if(l2!=NULL)
if(l1==NULL)
l1=l2;
else
{
last(l1)->link=l2;
last(l2)->link=l1;
}
}
node* cons(int data_)
{
node* cons;
cons=newnode();
cons->data=data_;
return (cons);
}
node* copy(node* list)
{
node* suret=NULL;
node* ylist=list;
if(list!=NULL)
do
{
concatenate(suret, cons(list->data));
list=list->link;
}while(list!=ylist);
return suret;
}
node* locate(int data_, node* list)
{
node* locate=NULL;
if(list!=NULL)
{
node* ylist=list;
do
{
if(list->data!=data_)list=list->link;
else
{
locate=list;
break;
}
}while(list!=ylist);
}
return locate;
}