数据结构中的两个顺序表的合并

#include 

#include
using namespace std;
#define  MAXSIZE 100  
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
typedef  struct {
  ElemType *elem;     //指向数据元素的基地址
  int  length;          //线性表的当前长度                                                      
 }SqList;
Status InitList_Sq(SqList *L)
{    //构造一个空的顺序表L
    L-> elem=new ElemType[MAXSIZE];  
    if(! L-> elem) exit(OVERFLOW);       
    L-> length=0;              
    return OK;
}
Status CreateList_Sq(SqList &L,int n)
{
int i;
if(!L.elem||n<0||n>MAXSIZE)  return ERROR;
for(i=1;i<=n;i++)
cin>>L.elem[i-1];   
L.length=n;
return OK;
}
void TraverseList_Sq(SqList &L)
{
int i;
        cout<>n; 
        //提示:输入有序表LB中的元素 
CreateList_Sq(LA, n);
       TraverseList_Sq(LA);
//提示:请输入有序表LB的元素个数
cin>>m;
        //提示:输入有序表LB中的元素
CreateList_Sq(LB, m);
        TraverseList_Sq(LB);
//在此处调用有序表合并函数MergeList_Sq
MergeList_Sq(LA,LB,LC);
//提示:LA和LB合并后的集合LC为:
//TraverseList_Sq(LC);
return 0;
}

 

/*

思路:::如果LA和LB是两个已经按照递减排列的顺序表,可以进行用两个数分别循环到两个表的最后,在这期间,c=a(a<=b);

c=b(a>b);如果LA先到达末尾,则将剩余的LB表中的元素直接插入到LC即可,如果LB表先到大末尾,同理。

*/

你可能感兴趣的:(数据结构)