第15课 - 线性表的顺序存储结构

1、顺序存储的定义 

                线性表的顺序存储结构,指的是用—段地址连 

                续的存储单元依次存储线性表中的数据元素。

        


2、设计思路 

            可以用一维数组来实现顺序存储结构 

                存储空间T* m_array

                当前长度 int m_length

    

template <typename T>
class SeqList : public List<T>
{
protected:
    T* m_array;     //顺序存储空间
    int m_length;   //当前线性表长度
public:
	/////
};

3、编程实验

        顺序存储结构的元素获取操作 

            -判断目标位置是否合法 

            -将目标位置作为数组下标获取元素

        

bool Seqlist<T>::get(int i,T& e) const
{
    bool ret = (0 <= i)&&(i<m_length);
    
    if(ret)
    {
        e = m_array[i];
    }
    
    return ret;
}


        顺序存储结构的元素插入操作 

            1. 判断目标位置是否合法 

            2. 将目标位置之后的所有元素后移—个位置 

            3. 将新元素插入目标位置 

            4. 线性表长度加1 


        顺序存储结构的元素插入示例 

bool SeqList<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++;
    }
}


        顺序存储结构的元素删除操作 

            1. 判断目标位置是否合法 

            2. 将目标位置后的所有元素前移—个位置 

            3. 线性表长度减1


        顺序存储结构的元素删除示例

bool SeqList<T>::remove(int i)
{
    bool ret = (0 <= i) && (i < m_length);
    
    if(ret)
    {
        for(int p=i;p<m_length;p++)
        {
            m_array[p] = m_array[p+1];
        }
        
        m_length--;
    }
    
    return ret;
}


5、实战预告

        To be continued ...

                



阅读更多
版权声明:课程笔记内容整理于狄泰软件 https://blog.csdn.net/qq_39654127/article/details/79948787
个人分类: 数据结构实战开发
想对作者说点什么? 我来说一句
相关热词

没有更多推荐了,返回首页

关闭
关闭
关闭