-
顺序表
线性结构(线性表):一维数组,队列,栈
先整理一维数组的题,以及代码实现,如下:
首先我们需要建立顺序表的结构,以及初始化和创建一维数组
分别是:初始化顺序表;销毁顺序表(自动调用);创建一个顺序表;打印顺序表
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAXSIZE 3
#define Node ElemType
#define ERROR 0
typedef int DateType;
class Node {//创建一个节点类
public:
DateType data;
};
class SqList {//创建一个顺序表的类
public:
SqList();//功能1:初始化顺序表
~SqList();//功能2:销毁顺序表
void CreateSqList(int n);//功能3:定义创建一个顺序表
void Print();//功能4:打印顺序表
private:
Node * elem;//顺序表的基址
int length;//顺序表的长度
};
//功能1
SqList::SqList() {
elem = new ElemType[MAXSIZE];//开辟空间
if (!elem)//当溢出时候报异常
exit(OVERFLOW);
length = 0;
}
//功能2
SqList::~SqList() {
delete[] elem;//删除基址的指针
}
//功能3
void SqList::CreateSqList(int n) {
if (n < 0) {
cout << "input number of node is error!" << endl;
exit(EXIT_FAILURE);
}
else {
int i;
for (i = 0; i < n; i++) {//循环向数组中添加元素
cout << "Please input the key of NO." << i + 1 << " : ";
cin >> elem[i].data;
}
length = n;//更改顺序表的长度
}
}
//功能4
void SqList::Print() {
if (length > 0) {
for (int i = 0; i < length; ++i)
cout << elem[i].data << " ";
cout << endl;
}
else
cout << "The SqList is empty" << endl;
//主函数(功能函数需要在这里调用)
int main()
{
//创建一个顺序表,并且打印
SqList l;
int n;
cout << "please input number: ";
cin >> n;
l.CreateSqList(n);
l.Print();
system("pause&#