zoukankan      html  css  js  c++  java
  • 第十五课、线性表的顺序存储结构--------------狄泰软件学院

    一、顺序存储结构的定义

    1、线性表的存储结构指的是用一段地址连续的存储单元依次存储线性表中的数据元素

    二、设计线性表存储结构的思路

    1、可以用一维表来实现顺序存储结构

    (1)、存储空间:T* m_array;

    (2)、当前长度:int m_length

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

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

    (1)、判断目标位置是否合法

    bool ret = ((0<= i) && (i<m_length));

    (2)、位置合法则将目标位置作为数组下标获取元素

    if( ret )
    {
        e = m_array[i];
    }

    完整函数代码:

    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)
    {
        //1、判断目标位置是否合法
        bool ret = ((0<= i) && (i<m_length));
        ret = ret && ( (m_length + 1) <= capacity() );
        
        if( ret )
        {
            //2、将目标位置之后的所有元素后移一个位置
            for(int p = m_length - 1; p >= i; p--)//先获取最后一个元素的位置,从最后一个元素开始移
            {
                m_array[p+1] = m_array[p];
            }
            //3、将新元素插入目标位置
            m_array[i] = e;
            //4、线性表长度加1
            m_length++;
        }
        
        return ret;
    }

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

    bool SeqList<T>::remove(int i)
    {
        //1、判断目标位置是否合法
        bool ret = ((0<= i) && (i<m_length));
        if( ret )
        {
            //2、将目标位置后的所有元素前移一个位置
            for(int p = i; p < m_length - 1; p++)
            {
                m_array[p] = m_array[p+1];
            }
            //3、线性表长度减1
            m_length--;
        }
        return ret;
    }

    接下来的开发:

  • 相关阅读:
    前端学习之路,新手必看
    css常用的属性方法 上篇
    H5音乐播放器源码地址
    H5音乐播放器源码共享
    H5音乐播放器【歌单列表】
    (1)H5实现音乐播放器【正在播放-歌词篇】
    JS 对数组的操作集锦(基础)
    完整的淘宝页面模板
    一次上机试题(面向对象)
    python select方法的使用
  • 原文地址:https://www.cnblogs.com/gui-lin/p/6830198.html
Copyright © 2011-2022 走看看