文章
11
粉丝
414
获赞
9
访问
109.2k
//链表合并
#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct lNode
{
int data;
struct lNode *next;
} *linkList;
//尾插法建立单链表
lNode* finCreatList(linkList &L, int n)//n代表建立链表的节点个数
{
//初始化头结点
L = (lNode*)malloc(sizeof(lNode));
L->next = NULL;
//s为新插入节点,r为尾节点
lNode *s,*r;
r = L;//r始终指向链表尾节点
while(n--)
{
int x; //x为新插入节点的指针域
cin >> x;
s = (lNode*)malloc(sizeof(lNode));
s->data = x;
//节点插入
r->next = s;
r = s;
}
r->next = NULL; //最后尾指针置为空
return L;
}
//链表输出
void outputLinkList(linkList L)
{
lNode *p = L->next;
while(p != NULL)
{
if(p->next != NULL)
cout << p->data << " ";
else
cout << p->data;
p = p->next;
}
}
//合并链表
lNode* mergelist(linkList &L1,linkList &L2,linkList &L)
{
lNode *p1,*p2;
p1 = L1->next;
p2 = L2->next;
//借助另一个链表实现
//为什么让L指向链表L2(指向L1也一样)因为要给L开辟一个空间,否则会召造成内存...
登录后发布评论
暂无评论,来抢沙发