线性表之数组
1.存储方式
数组在内存中开辟一段连续的空间,按照先后顺序存储,前后相邻的两个元素之间的地址相邻。
2.数据的操作
2.1读取
找到需要读取的数据的位置pos,直接根据pos取值。
2.2 增加
获取数组的大小,在数组的最后添加一个数据。
2.3 插入
在数据中找到指定插入的位置pos,将pos开始到最后的数据都往后移动一位,然后将数据插到pos位置。
2.4 删除
在数据中找到指定删除数据的位置pos,将pos开始到最后的数据都往前移动一位。
2.5 修改
找到需要修改的数据的位置pos,直接根据pos修改。
2.6 特点
缺点:数据的容量需要提前确定,以方便提前分配内存空间;在数据插入与删除时计算量大,操作复杂。
优点:读取或者修改数据简单,效率高。
3. 代码
template <class T>
class DArray
{
public:
DArray();
DArray(const int& maxCap);
~DArray();
// 判断是否为空
bool IsEmpty();
// 判断容量是否已满
bool IsFull();
// 清空
void Clear();
// 获取数据的数量
int GetLength()const;
// 获取数组的容量
int GetCapicity()const;
// 在某个地方获取一个数据
T GetData(const int& pos);
// 在某个位置插入一个数据
void Insert(const int& pos, const T& data);
// 在最后加入一个数据
void Append(const T& data);
// 删除某个位置的数值
void Delete(const int& pos);
private:
T* m_array;
int m_capcity;
int length;
};