一、線性表的存儲結構指的是用一段地址連續的存儲單元依次存儲線性表中的數據元素數組
一、能夠用一維表來實現順序存儲結構函數
(1)、存儲空間:T* m_array;spa
(2)、當前長度:int m_length設計
template <typename T> class SqeList : public List<T> { protected: T* m_array; int m_length; ////////////////////// };
(1)、判斷目標位置是否合法code
bool ret = ((0<= i) && (i<m_length));
(2)、位置合法則將目標位置做爲數組下標獲取元素blog
if( ret ) { e = m_array[i]; }
完整函數代碼:ci
bool SeqList<T>::get(int i, T& e) const { bool ret = ((0<= i) && (i<m_length)); if( ret ) { e = m_array[i]; } return ret; }
bool SeqList<T>::insert(int i, 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; //四、線性表長度加1 m_length++; } return ret; }
bool SeqList<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]; } //三、線性表長度減1 m_length--; } return ret; }
接下來的開發:開發