#include<iostream>
using namespace std;
struct node
{
int data;
node *next;
};
node *head=NULL;
node *head_2=NULL;
node *pTemp=NULL;
void push_back(node *&head,node *&p)
{
pTemp=head;
while(NULL!=pTemp->next)
pTemp=pTemp->next;
p->next=pTemp->next;
pTemp->next=p;
}
void display(node *&head)
{
pTemp=head->next;
while(NULL!=pTemp)
{
cout<<pTemp->data<<" ";
pTemp=pTemp->next;
}
cout<<endl;
}
node* connect_link(node *&head,node *&head_2)
{
pTemp=head;
while(NULL!=pTemp->next)
pTemp=pTemp->next;
pTemp->next=head_2->next;
return head_2;
}
void destroy(node *&head)
{
node *p=head->next;
while(NULL!=p->next)
{
pTemp=p->next;
cout<<"del:"<<p->data<<endl;
delete p;
p->next=NULL;
p=pTemp;
}
cout<<"del:"<<pTemp->data<<endl;
delete pTemp;
cout<<"我们没有初始化头结点的数据域,因此由系统产生一个较大的数赋给头结点的数据域"<<endl;
cout<<"del:"<<head->data<<endl;
delete head;
head->next=NULL;
}
int main()
{
head=new node;
head->next=NULL;
head_2=new node;
head_2->next=NULL;
node *p=NULL;
int i=0;
for(;i<10;++i)
{
p=new node;
p->data=i;
push_back(head,p);
p=new node;
p->data=i+100;
push_back(head_2,p);
}
cout<<"输出单链表1"<<endl;
display(head);
cout<<endl;
cout<<"输出单链表2"<<endl;
display(head_2);
cout<<endl;
p=connect_link(head,head_2);
delete p;
p=NULL;
cout<<endl;
cout<<"输出合并后的单链表"<<endl;
display(head);
cout<<"回收单链表内存空间"<<endl;
destroy(head);
return 0;
}