数据结构 C++ 顺序表的合并 成员函数 产生新的有序线性表
设A和B均为SeqList对象,假定A和B是有序表(递增):(1)试为类SeqList编写一成员函数Merge(SeqListA,SeqListB),用以产生一个新的有序...
设A和B均为SeqList对象,假定A和B是有序表(递增):
(1) 试为类SeqList编写一成员函数Merge(SeqList A,SeqList B),用以产生一个新的有序线性表,该表包含了A和B中所有元素。
(提示:合并后的数据放在那里?)
(2) 编写一个非成员函数,Merge(SeqList &A,SeqList B),实现 A=A+B操作,即新表A包含了原来A和B的所有元素
这个怎么做啊,求大神指教 展开
(1) 试为类SeqList编写一成员函数Merge(SeqList A,SeqList B),用以产生一个新的有序线性表,该表包含了A和B中所有元素。
(提示:合并后的数据放在那里?)
(2) 编写一个非成员函数,Merge(SeqList &A,SeqList B),实现 A=A+B操作,即新表A包含了原来A和B的所有元素
这个怎么做啊,求大神指教 展开
1个回答
展开全部
typedef struct list
{
int key;
list *next;
}*SeqList;
SeqList Merge(SeqList A,SeqList B)
{
SeqList temp=new list();
if(A!=NULL&&B!=NULL)
{
if(A->key>B->key)
{
temp->key=A->key;
temp->next=Merge(A->next,B);
return temp;
}
else
{
temp->key=B->key;
temp->next=Merge(A,B->next);
return temp;
}
}
else if(A!=NULL)
{
temp->key=A->key;
temp->next=Merge(A->next,B);
return temp;
}
else if(B!=NULL)
{
temp->key=B->key;
temp->next=Merge(A,B->next);
return temp;
}
else
return NULL;
}
{
int key;
list *next;
}*SeqList;
SeqList Merge(SeqList A,SeqList B)
{
SeqList temp=new list();
if(A!=NULL&&B!=NULL)
{
if(A->key>B->key)
{
temp->key=A->key;
temp->next=Merge(A->next,B);
return temp;
}
else
{
temp->key=B->key;
temp->next=Merge(A,B->next);
return temp;
}
}
else if(A!=NULL)
{
temp->key=A->key;
temp->next=Merge(A->next,B);
return temp;
}
else if(B!=NULL)
{
temp->key=B->key;
temp->next=Merge(A,B->next);
return temp;
}
else
return NULL;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询