数据结构合并线性表!!!急急急!求大神练手!!
(合并有序表)已知线性表La和Lb中元素分别按非递减顺序排列,现要求将它们合并成一个新的线性表Lc,并使得Lc中元素也按照非递减顺序排列。要求:1.用带头结点的单链表实现...
(合并有序表)已知线性表La和Lb中元素分别按非递减顺序排列,现要求将它们合并成一个新的线性表Lc,并使得Lc中元素也按照非递减顺序排列。要求:1.
用带头结点的单链表实现有序表的合并,不能增加额外的空间存储合并数据
2. 节点定义要求:
struct node { int value; struct node * next; }; typedef struct node Node;
typedef struct node *ptrList,*List;
3. 输入格式:
线性表a的长度 线性表a的所有元素
线性表b的长度 线性表b的所有元素
输出格式:
排序后的线性表a所有元素
排序后的线性表b的所有元素
排序后的合并线性表的所有元素
输入输出格式要求续:
(1)用英文逗号分隔元素,输出完一个线性表后回车换行。
(2)线性表为空时,输出NULL(大写)
(3)任意多余输出视为错误。
例:
输入
5 1 2 3 4 5
5 6 7 8 9 10
输出
1,2,3,4,5
6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
输入输出格式要求
如果链表为空,则输出NULL(大写)
例:
输入
5 1 2 3 4 5
0
输出
1,2,3,4,5
NULL
1,2,3,4,5
合并有序表的函数名称:MergeSortedList
函数参数:A集合的单链表头指针与B集合单链表的头指针,
函数返回值:合并后的单链表的头指针 展开
用带头结点的单链表实现有序表的合并,不能增加额外的空间存储合并数据
2. 节点定义要求:
struct node { int value; struct node * next; }; typedef struct node Node;
typedef struct node *ptrList,*List;
3. 输入格式:
线性表a的长度 线性表a的所有元素
线性表b的长度 线性表b的所有元素
输出格式:
排序后的线性表a所有元素
排序后的线性表b的所有元素
排序后的合并线性表的所有元素
输入输出格式要求续:
(1)用英文逗号分隔元素,输出完一个线性表后回车换行。
(2)线性表为空时,输出NULL(大写)
(3)任意多余输出视为错误。
例:
输入
5 1 2 3 4 5
5 6 7 8 9 10
输出
1,2,3,4,5
6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
输入输出格式要求
如果链表为空,则输出NULL(大写)
例:
输入
5 1 2 3 4 5
0
输出
1,2,3,4,5
NULL
1,2,3,4,5
合并有序表的函数名称:MergeSortedList
函数参数:A集合的单链表头指针与B集合单链表的头指针,
函数返回值:合并后的单链表的头指针 展开
1个回答
展开全部
#include <iostream>
using namespace std;
struct node
{
int value;
struct node * next;
};
typedef struct node Node;
//typedef struct node *ptrList,*List;
Node * create()
{
int n;
int i=0;
Node *head=NULL,*p,*q;
cin>>n;
while(i<n)
{
p=new Node;
cin>>p->value;
p->next=NULL;
if(head==NULL)
{
head=p;
q=p;
}
else
{
q->next=p;
q=p;
}
i++;
}
return head;
}
void show(Node *head)
{
Node *p=head;
if(p==NULL)
{
cout<<"NULL"<<endl;
exit(0);
}
while(p!=NULL)
{
cout<<p->value<<",";
p=p->next;
}
cout<<endl;
}
Node * mergelist(Node *La,Node *Lb)
{
node *p;
p=La;
if(p==NULL)
return Lb;
while(p->next!=NULL)
p=p->next;
p->next=Lb;
return La;
}
int main()
{
Node *h1,*h2;
h1=create();
h2=create();
show(h1);
show(h2);
h1=mergelist(h1,h2);
show(h1);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询