线性表的数组描述

1.概述
C++程序常用的数据描述方法是数组描述链式描述。本文研究线性表的数组描述。
数组描述方法将元素存储在一个数组中,用一个数学公式来确定每个元素存储的位置即在数组中的索引,所有元素存储在一片连续的存储空间中,这就是顺序表。
2.线性表的数据结构
首先理解对线性表可实施的操作,一个线性表的抽象类代码如下:

template<class T>
class linearList
{
public:
    virtual ~linearList(){};
    virtual bool empty()const=0;
    virtual int size()const=0;
    virtual T & get(int theIndex)const=0;
    virtual int indexOf(const T & theElement)const;
    virtual void erase(int theIndex())=0;
    virtual void insert(int  theIndex,const T & theElement)=0;
    virtual void ouput(ostream & out)const=0;   
};

3.数组描述
3.1 数组的每一个位置都可以存储线性表的一个元素,因此需要一个映射,使线性表的一个位置对应于数组的一个位置。
例如:location(i)=i; 即第i个线性表元素在数组中的存储位置是i.这也是最自然的选择。
当然也可以使用其他的公式,使得线性表的元素在数组中从后向前存储,如 location(i)=arrayLength-i-1;
或者从数组的某一个位置开始,环绕到数组头来存储线性表元素,如 location(i)=(location(0)+i)%arrayLength,此处不再详细说明。
要创建一个数组类,来实现抽象类型linearList,必须首先选择element的类型和数组长度。
前者使用模板类来实现,后者使用动态数组来实现,可避免空间分配不足.
3.2 改变数组的长度算法:首先建立一个具有新长度的数组,然后将数组a的元素复制到这个新数组中,最后改变数组a的值,使它能够引用新数组。源代码如下:

template<class T>
void changeLength1D(T*&am
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值