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;
    };
    

      

  • 相关阅读:
    Vue基本用法:vuex、axios 拦截器和vue-router路由导航守卫
    Vue基本用法:vue-router路由、refs属性和axios基本使用
    Tensorflow基本开发架构
    5. Vue3.x双向数据绑定
    4. Vue3.x中的事件方法详解
    3. Vue3.x中的事件方法入门
    2. Vue3绑定数据
    1. Vue3 入门 —— 简介、环境搭建
    2.5.1 MongoDB 介绍与基础
    2.6.8 Masstransit异常处理和总结
  • 原文地址:https://www.cnblogs.com/zouhq/p/10587351.html
Copyright © 2011-2022 走看看