#ListTraverse函数在MergeList函数里边不执行
代码
#include
using namespace std;
#include
//函数状态代码
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERLOAD -1
#define INFEASIBLE 0
//新建函数类型,表示函数运行结果
typedef int Status;
//顺序表结构体定义
#define MAXSIZE 100 //线性表的最大容量
typedef int ElemType;
typedef struct {
ElemType* elem;//基地址
int length;
int listsize;//当前分配的储存容量
}SeqList;
//创造一个空的顺序表L
Status InitList(SeqList& L)
{
L.elem = new ElemType[MAXSIZE];//为顺序表分配一个大小为MAXSIZE的数组空间
if (!L.elem) exit(-1);
L.length = 0;
return OK;
}
//销毁线性表
Status DestroyList(SeqList& L)
{
delete []L.elem;
L.elem = NULL;
L.length = 0;
L.listsize = 0;
return OK;
}
//置空线性表
Status ClearList(SeqList& L)
{
L.length = 0;
return OK;
}
//判断线性表是否为空
Status ListEmpty(SeqList L)
{
if (L.length == 0)return TURE;
return FALSE;
}
//返回线性表中元素的个数
int ListLength(SeqList L)
{
return L.length;
}
//得到线性表中某个元素的值
Status GetElem(SeqList L, int i, ElemType& e)
{
if (i<1 || i>L.length) exit(ERROR);
e = L.elem[i-1];
return OK;
}
//查找 定位
int LocateElem(SeqList L, ElemType e)
{
for (int i = 0; i < L.length; i++)
{
if (e == L.elem[i]) return i + 1;
return 0;
}
}
Status ListInsert(SeqList& L, int i, ElemType e)
{
if (i<1 || i>L.length + 1) return ERROR;
if (L.length == MAXSIZE) return ERROR;
for (int j = L.length - 1; j >= i - 1; j--)
L.elem[j + 1] = L.elem[j];
L.elem[i - 1] = e;
L.length++;
return OK;
}
Status ListTraverse(SeqList L)
{
//cout << "OK" << endl;
for (int i = 0; i < L.length; i++)
cout << L.elem[i] << " ";
cout << endl;
return OK;
}
void MergeLIst(SeqList &L1,SeqList &L2)
{
//cout << "OK" << endl;
int n1, n2, e;
n1 = ListLength(L1);
n2 = ListLength(L2);
for (int j = 0; j < n2; j++)
{
GetElem(L2, j, e);
if (!LocateElem(L1, e))
ListInsert(L1, ++n1, e);
}
ListTraverse(L1);
}
int main() {
SeqList La;
InitList(La);
int lena;
cin >> lena;
La.length = lena;
for (int i = 0;i < lena; i++)
{
cin >> La.elem[i];
}
SeqList Lb;
InitList(Lb);
int lenb;
cin >> lenb;
Lb.length = lenb;
int i;
for ( i = 0; i < lenb; i++)
{
cin >> Lb.elem[i];
}
ListTraverse(La);
ListTraverse(Lb);
MergeLIst(La, Lb);
DestroyList(La);
DestroyList(Lb);
return 0;
}
你完整代码呢
你刚才是不是回复了我?好像被删除了,你把代码用代码片功能回复我试试