15_线性表的顺序存储结构

作者: 编程半岛 | 来源:发表于2018-01-22 23:38 被阅读4次

关键词: 顺序存储 、 元素获取、元素插入、元素删除

1. 顺序存储的定义

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

2. 设计思路

  1. 一维数组来实现顺序存储结构
    存储空间:T* m_array;
    当前长度:int m_length;
template <typename T>
class SeqList : public List<T>
{
protected:
    T* m_marry;
    int m_length;
    // ......
};
  1. 顺序存储结构的元素获取操作
    判断目标位置是否合法
    如果合法:将目标位置作为数组下标获取元素
template <typename T>
bool SeqList<T>::get(int i, T &e) const
{
    bool ret = ((0 <= i) && (i < m_length));

    if(ret)
    {
        e = m_marry(m_length);
    }

    return ret;
}
  1. 顺序存储结构的元素插入操作
    判断目标位置是否合法
    如果合法:将目标位置之后的所有元素后移一个位置
    将新元素插入目标位置
    线性表长度加1
template <typename T>
bool SeqList<T>::insert(int i, const T& e)
{
    bool ret = ( (0 <= i ) && ( i <= m_length ) );  // 注意:i<= m_length

    ret = ret && ( (m_length + 1) <= capacity() );  // 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++;
    }

    return ret;
}
  1. 顺序存储结构的元素删除操作
    判断目标位置是否合法
    将目标位置后的所有元素前移一个位置
    线性表长度减1
template <typename T>
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];
        }

        m_length--;
    }

    return ret;
}

声明:此文章仅是本人在学习狄泰学院《数据结构实战开发教程》所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!

实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

相关文章

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 数据结构和算法之一——线性表_2_顺序结构存储

    线性表存储结构分类线性表有两种物理存储结构:1)顺序存储结构;2)链式存储结构 顺序存储结构2.1定义:线性表的顺...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

  • 线性表--顺序存储结构

    一、线性表的顺序存储结构 线性表有两种物理存储结构:顺序存储结构和链式存储结构。 顺序存储结构 ①定义:用一段地址...

  • 数据结构之有序线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构以及线性表的链式存储结构,今天接着写有序线性表的链式存储结 ...

  • 数据结构与算法(二)--- 单向循环链表

    线性表 线性表分为顺序存储结构和链式存储结构 存储方式 顺序存储结构用一段连续的存储单元依次存储线性表的数据元素;...

  • 数据结构之线性表

    线性表 线性表:零个或多个数据元素的有限序列线性表的两种存储结构:顺序存储&链式存储 单链表结构&顺序存储结构对比...

  • 2019-07-14 线性表详解

    线性表主要包括顺序存储结构和链式存储结构。 顺序存储结构: #define MAXSIZE 20 typedef ...

  • 线性表的链式存储结构Java实现

    有了前面文章的铺垫:数据结构的基本理解线性表及其顺序存储结构的理解线性表的顺序存储结构java实现线性表链式存储就...

  • 线性表及应用

    线性表 “线性表(List):零个或多个数据元素的有限序列。” 线性表的顺序存储结构 线性表的顺序存储结构,指的是...

网友评论

    本文标题:15_线性表的顺序存储结构

    本文链接:https://www.haomeiwen.com/subject/dknraxtx.html