zoukankan      html  css  js  c++  java
  • 数据结构---线性表

    1线性表的逻辑结构

            线性表示n>>0个数据元素a1,a2,a3,...an-1,an的有序集合,表中每个元素ai在表中的位置仅取决于元素本身的序号i。相邻左侧元素为其直接前驱,相邻右侧元素为其直接后继,由此可知第一个元素只有直接后继,最后一个元素仅有直接前驱。n为线性表的长度,长度为0的为空表。线性表的特点是数据元素之间存在着一对一的关系。

           符号表示:L = (a1,a2,a3,...an-1,an)

           有线性表的定义可以看出同一线性表的元素必然具有相同的特性,并且这些数据元素可以是基本数据元素,可以是多个数据项组成的复杂数据元素。

           常用操作应该包括:

    1. 求线性表的长度;
    2. 寻找第i个元素;
    3. 根据提供的具体元素值,查找其所在位置;
    4. 插入新数据元素;
    5. 删除某个数据元素;
    6. 修改某个数据元素;
    7. 清空线性表;

    2线性表的抽象类定义

            线性表可以分为顺序表和链式表两大类,它们具有相似的特性和操作,因此我们可以定义一个线性表的抽象类,为它们通过统一的对外接口。

    template <class type>
    class ablist
    {
    public:
    	ablist();
    	~ablist();
    
    	int GetLength(return length);//返回线性表的长度
    	virtual type Get(int i);     //取出线性表的第i个元素
    	virtual bool MakeEmpty() = 0;//清空线性表
    
    	virtual bool Set(int i, type value) = 0;    //修改线性表第i个元素为value
    	virtual bool Insert(int i, type value) = 0; //在线性表第i个位置处插入元素value
    
    	virtual type Remove(int i) = 0;         //删除线性表第i个元素
    	virtual type Remove1(type value) = 0;   //删除线性表值为value的元素
    
    protected:
    	int length;
    };
    

      

  • 相关阅读:
    [React Testing] Intro to Shallow Rendering
    人物-IT-马化腾:马化腾
    人物-IT-雷军:雷军
    Less:Less(CSS预处理语言)
    文学-谚语-英文谚语:英文谚语
    文明-墓-太阳墓:太阳墓
    地理-撒哈拉之眼:撒哈拉之眼
    生物-海底人:海底人
    地理-蓝洞:蓝洞
    文明-根达亚文明:根达亚文明
  • 原文地址:https://www.cnblogs.com/zouhq/p/10587351.html
Copyright © 2011-2022 走看看