代码:
#include<iostream>
using namespace std;
typedef struct {
int data;
} Data;
typedef struct LNode {
Data elem;
struct LNode* next;
}Lnode, * Linklist;
//单链表初始化
int Init_List(Linklist& L)//&L可以直接对L操作,这样不用返回结构体
{
//L = (Linklist)malloc(sizeof(LNode));//开辟空间(C语言)
//L=new Lnode; C++开辟空间
L = new Lnode;
L->next = NULL;//头结点指针域置空
return 1;//初始化完毕
}
//后插法创建单链表
void Create_List(Linklist& L, int n)//n为输入元素的个数
{
Linklist r;//创建尾指针
r = L;//指向头结点
for (int i = 0; i < n; i++)
{
Linklist p = new LNode;//开辟空间,P为结点
cout << "输入第"<<i + 1 <<"个数据" << endl;;
cin >> p->elem.data;
p->next = NULL;
r->next = p;//将新节点插入r之后
r = p;//r指向新的尾节点
}
}
void Merge_List(Linklist& La, Linklist& Lb, Linklist& Lc)
{//合并La和Lb,合并之后新表头用Lc指向
Linklist pa = La->next;
Linklist pb