#include <iostream>
using namespace std;
#define MAX_SIZE 100
/*
typedef struct _SqList SqList;
struct _SqList {//顺序表结构地址
int* elems; //顺序表的基地址
int lenth; //顺序表实际元素个数
int size; //顺序表总的空间大小
};
*/ //可以用下面的简单方式
typedef struct {
int* elems; //顺序表的基地址
int length; //顺序表实际元素个数
int size; //顺序表总的空间大小
}SqList;
bool initList(SqList& L)//构造一个空的顺序表,成功返回true
{
L.elems = new int[MAX_SIZE]; //为顺序表分配MAX_SIZE个int元素的空间
if (!L.elems) return false; //存储分配失败
L.length = 0;
L.size = MAX_SIZE;
return true;
}
void listPrint(SqList& L)
{
cout << "顺序表存储空间Size:" << L.size << ",已经保存元素的个数length:" << L.length << endl;
for (int i = 0; i <= L.length - 1; i++)
{
cout << L.elems[i] << " ";
cout << endl;
}
}
bool listAppend(SqList& L, int e)
{
if (L.length == L.size) return false;//存储空间已经满了
L.elems[L.length] = e;
L.length++; //表长度加一
return true;
}
int main()
{
SqList list;
int e;
cout << "顺序表的初始化...." << endl;
//1.初始化
if (initList(list))
{
cout << "顺序表初始化成功了!" << endl;
}
// 2.添加元素
int count = 0;
cout << "请输入要添加的元素个数:";
cin >> count;
listPrint(list);
for (int i = 0; i < count; i++)
{
cout << "\n请输入要添加的元素e:";
cin >> e;
if (listAppend(list, e)) {
cout << "添加成功" << endl;
}
else {
cout << "添加失败" << endl;
}
}
listPrint(list);
system("pause");
return 0;
}