第十五课、线性表的顺序存储结构--------------狄泰软件学院

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

接下来的开发:开发

相关文章
相关标签/搜索