zoukankan      html  css  js  c++  java
  • 第十四课 线性表的本质和操作

    线性表(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++中表现为一个抽象类

  • 相关阅读:
    【webpack 系列】进阶篇
    【webpack 系列】基础篇
    手写 Promise 符合 Promises/A+规范
    React-redux: React.js 和 Redux 架构的结合
    Redux 架构理解
    javascript 中的 this 判定
    编译原理
    vue 响应式原理
    强大的版本管理工具 Git
    js实现跨域(jsonp, iframe+window.name, iframe+window.domain, iframe+window.postMessage)
  • 原文地址:https://www.cnblogs.com/wanmeishenghuo/p/9501101.html
Copyright © 2011-2022 走看看