第十五課、線性表的順序存儲結構--------------狄泰軟件學院

1、順序存儲結構的定義

一、線性表的存儲結構指的是用一段地址連續的存儲單元依次存儲線性表中的數據元素數組

2、設計線性表存儲結構的思路

一、能夠用一維表來實現順序存儲結構函數

(1)、存儲空間:T* m_array;spa

(2)、當前長度:int m_length設計

template <typename T>
class SqeList : public List<T> { protected: T* m_array; int m_length; ////////////////////// 
};

3、順序存儲結構的元素獲取操做

(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; }

4、順序存儲結構的元素插入操做

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; }

5、順序存儲結構的元素刪除操做

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; }

接下來的開發:開發

相關文章
相關標籤/搜索