日常说明:首先博主也是菜鸟一枚,有错误欢迎大家指正。另外本博客所有的代码博主编写后均调试
通过。重要提醒!!!!博主使用的是VS2017,如果有低版本的小伙伴
最好新建空项目将此代码复制上去。
附加说明:最初的代码我没有严格的按照项目规范来分离,希望大家包含。
头文件 list.h
#pragma once
/**********************************
* algorithms.h :线性表的基本操作 *
* author : shilei *
* created : 2017.3.12 *
***********************************/
class SqList
{
protected:
DataType * elem;//首地址
int length; //当前的顺序表长度
int listSize; //顺序表的容量
private:
void init(DataType values[], int n);//初始化线性顺序表
public:
SqList(int LIST);
~SqList(void);
int Clength();
void ListInsert(int i, DataType e);
virtual void ListInsert(DataType e);
DataType ListDelete(int i);
DataType GetElem(int i);
SqList(DataType values[], int n);//构造顺序表,由数组直接提供元素
};
SqList::SqList(int LIST)//构造空顺序表
{
this->listSize = LIST;
length = 0;
this->elem = new DataType[listSize];
}
SqList::SqList(DataType values[], int n)//用数组直接构造顺序表
{
this->init(values, n);
}
void SqList::init(DataType values[], int n)//初始化顺序表
{
this->listSize = n * 2;//初始化顺序表的容量为n*2
this->elem = new DataType[this->listSize];//初始化elem顺序表
this->length = n;//初始化顺序表的元素个数为变量n
for (int i = 0; i < length; i++)//将数组中的元素一次赋值到顺序表
{
this->elem[i] = values[i];
}
}
SqList