线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表中的数据元素。数组
能够用一维数组来实现顺序存储结构spa
- 存储空间:T *m_array;
- 当前长度: int m_length;
template <typename T> class SqlList : public List<T> { protected: T *m_array; int m_length; };
- 判断目标是否合法
- 将目标位置做为数组下标获取元素
bool SqlList<T>::get(int i, T &e) const { bool ret = ((0 <= i) && (i < m_length)); if (ret) { e = m_array[i]; } return ret; }
- 判断目标位置是否合法
- 将目标位置以后的全部元素后移一个位置
- 将新元素插入目标位置
- 线性表长度加 1
bool SqlList<T>::insert(int i, const T &e) { bool ret = ((0 <= i) && (i <= m_length)); ret = ret && ((m_length + 1) < capacity()); if (ret) { for (int p = m_length - 1; p >= i; --p) { m_array[p+1] = m_array[p]; } m_array[i] = e; ++m_length; } return ret; }
- 判断目标位置是否合法
- 将目标位置后的全部元素前移一个位置
- 线性表长度减 1
bool SqlList<T>::remove(int i) { bool ret = ((0 <= i) && (i < m_length)); if (ret) { for (int p = i; p < m_length - 1; ++p) { m_array[p] = m_array[p+1]; } --m_length; } return ret; }
以上内容整理于狄泰软件学院系列课程,请你们保护原创!code