关于C++合并顺序表

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:58:04
把按从小到大的顺序表A和B合并为顺序表C
表C也是从小到大排列
这是我写的。。
没有错误了。。但是一运行就要不得了

#include<iostream>
#include<stdlib.h>
using namespace std;
#define MAXSIZE 100
typedef int DataType;
typedef struct
{ DataType * elem; //线性表的基地址
int length; //线性表当前的长度
int listsize; //线性表当前分配的最大存储内容容量
}SeqList;

void CreatList(SeqList *L)
{
cout<<"输入线性表当前长度:";
cin>>L->length;
cout<<"请按从小到大升序输入线性表的各个元素"<<endl;
for(int i = 0;i<L->length;i++)
{
cin>>L->elem[i];
}
L->listsize = L->length;
}

void MergeSeqList(SeqList *A,SeqList *B,SeqList *C)
{
DataType *pa,*pb,*pc,*palast,*pblast;
pa = A->elem;pb = B->elem;
C->listsize = A->listsize + B->listsize;
pc = C->elem = (DataType*)malloc(C->listsize*sizeof(DataType));
if(!pc) exit(-1);
palas

#include<iostream>
#include<stdlib.h>
using namespace std;
#define MAXSIZE 100
typedef int DataType;
typedef struct
{
DataType * elem; //线性表的基地址
int length; //线性表当前的长度
int listsize; //线性表当前分配的最大存储内容容量
}SeqList;

void CreatList(SeqList *L)
{
cout<<"输入线性表当前长度:";
cin>>L->length;

//分配空间
L->elem = (int*) malloc(L->length*sizeof(int));
cout<<"请按从小到大升序输入线性表的各个元素";
for(int i = 0;i< L->length;i++)
{
cin>>L->elem[i];
}
L->listsize = L->length;
}

void MergeSeqList(SeqList *A, SeqList *B, SeqList *C)
{
DataType *pa, *pb, *pc, *palast, *pblast;
pa = A->elem; pb = B->elem;
C->length = A->length + B->length;
C->elem = (DataType*)malloc(C->length*sizeof(DataType));
if(!C->elem) exit(-1)