将两个非递减的有序链表合并为一个非递增的有序链表。要求结果链表仍使用原来
两个链表的存储空间,不另外占用其它的存储空间。表中允许有重复的数据。
#include <iostream>
using namespace std;
typedef int ElemType;
typedef int status;
//定义单链表
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode ,*LinkList;
//尾插法创建单链表
LinkList CreatList_R(LinkList &L, int n)
{
L = new LNode; //为新结点开辟空间
L->next = NULL; //初始化,结点的Next域置空
LNode *r = L; //尾指针指向头结点
for (int i = 0; i < n; i++)
{
LNode *p = new LNode; //生成新结点
cin >> p->data;
p->next = NULL; //新结点next域置空
r->next = p; //尾结点的next指向新结点p(此时P为新的尾结点)
r = p; //然后将p赋给尾结点r
}
return L;
}
//输出
int DispList(LinkList L)
{
LNode *p = L->next; //令结点P指向链表的首元结点
while(p != NULL) //如果p不为空,说明链表中有元素
{
cou
数据结构第二章课后习题第二题(求交集可有重复元素)
最新推荐文章于 2022-12-28 16:24:49 发布