• 第十四课 线性表的本质和操作


    线性表(List)的表现形式:

      零个或者多个数据元素组成的集合

      数据元素在位置上是有序排列的

      数据元素的个数是有限的

      数据元素的类型必须相同

    线性表的抽象定义:

    线性表的性质:

      a0为线性表的第一个元素,只有一个后继

      an-1为线性表的最后一个元素,只有一个前驱

      除了a0和an-1外,其他的元素ai,既有前驱又有后继

      直接支持逐项访问和顺序存取

    我们思考下面的问题:

    班级同学之间的关系不是一对一的,所以不能用线性表描述

    公司中的领导可以领导很多人,所以不能用线性表描述

    用物品排队占座是不能用线性表描述的,虽然是一对一的关系,但是排队的主体是人,而物品和人不是同一类元素

    花名册的名字要看是怎么写的,如果是顺序写的,就可以用线性表描述,如果是没有规律的乱排就不能用线性表描述

     线性表是生活队列关系的总结

    线性表的一些常用操作:

      将元素插入线性表

      将元素从线性表中删除

      获取目标位置处元素的值

      设置目标位置处元素的值

      获取线性表的长度

      清空线性表

    线性表在程序中表现为一种特殊的数据类型:

    添加List抽象类如下:

     1 #ifndef LIST_H
     2 #define LIST_H
     3 
     4 #include "Object.h"
     5 
     6 namespace DTLib
     7 {
     8 
     9 template <typename T>
    10 class List : public Object
    11 {
    12 public:
    13     virtual bool insert(int i, const T& e) = 0;
    14     virtual bool remove(int i) = 0;
    15     virtual bool set(int i, const T& e) = 0;
    16     virtual bool get(int i, T& e) = 0;
    17     virtual int length() const = 0;
    18     virtual void clear() = 0;
    19 };
    20 
    21 }
    22 
    23 
    24 #endif // LIST_H

    List是一个抽象类,是用来被继承的。

    小结:

      线性表是数据元素有序并且有限的集合

      线性表中的数据元素必须是类型相同的

      线性表可用于描述排队关系的问题

      线性表在程序中表现为一种特殊的数据类型

      线性表在C++中表现为一个抽象类

  • 相关阅读:
    指针型函数与函数型指针 -2021.08.04
    Ubuntu18.04 NAT模式下配置静态IP地址 -2020.11.09
    Linux编译内核 Ubuntu18.04 -2020.11.04
    以PING为例,利用Wireshark深入理解网络层、数据链路层的工作原理 -2020.10.30
    Ubuntu18.04虚拟机的安装
    UNIX/Linux系统中的文件属性
    【计算机四级嵌入式】内存管理
    利用预编译解决C/C++重复定义的错误 -2020.09.13
    使用镜像安装cygwin、gcc并配置CLion IDE -2020.09.12
    Android Studio 4.0.1 找不到R.java 2020.09.08
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9501101.html
Copyright © 2020-2023  润新知