線性表的順序存儲結構,指的是用一段地址連續的存儲單元依次存儲線性表中的數據元素。數組
能夠用一維數組來實現順序存儲結構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