zoukankan      html  css  js  c++  java
  • 第5课

    1. 线性表的抽象定义

    线性表是具有相同类型的n(n>=0)个数据元素有限序列

                 (a0, a1, ... , an-1)

    ai是表项(数据元素),n是表长度

    2. 线性表的性质

    1. a0是线性表的第一个元素,只有一个后继
    2. an-1是线性表的最后一个元素,只有一个前驱
    3. 除a0和an-1外的其他元素ai,既有前驱,又有后继
    4. 直接支持逐项访问和顺序存取

    3. 线性表的常用操作

     - 将元素插入线性表

     - 将元素从线性表中删除

     - 设置目标位置处元素的值

     - 查找数据元素在线性表中的位置 

     - 获取目标位置处元素的值

     - 获取线性表的长度

     - 清空线性表

    4. 线性表的程序表现

    线性表在DTLib中表现为一个抽象类List,在后续的博客中,将会通过继承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 protected:
    13     List(const List &);
    14     List &operator = (const List &);
    15 public:
    16     List() { }
    17     virtual bool insert(int i, const T &e) = 0;    //在位置i处插入新元素e
    18     virtual bool insertTail(const T &e) = 0;       //在尾部插入新元素e
    19     virtual bool remove(int i) = 0;                //删除位置i处的元素
    20     virtual bool set(int i, const T &e) = 0;       //设置位置i处的元素为e
    21     virtual int find(const T &e) const = 0;        //查找e在线性表中第一次出现的位置;若e不存在,则返回-1
    22     virtual bool get(int i, T &e) const = 0;       //获取位置i处的元素,通过参数e返回
    23     virtual T get(int i) const = 0;                //获取位置i处的元素,通过返回值返回
    24     virtual int length() const = 0;                //获取线性表长度
    25     virtual void clear() = 0;                      //清空线性表
    26 };
    27 
    28 }
    29 
    30 #endif // LIST_H

    注:本文整理于狄泰《数据结构开发实战教程》课程内容

  • 相关阅读:
    spring-data-jpa初步认识
    java日期相关
    springboot整合activiMQ
    附录B. Spring Boot 配置文件application.properties
    ARM GNU常用汇编语言介绍
    GNU风格 ARM汇编语法5
    GNU风格 ARM汇编语法4
    GNU风格 ARM汇编语法3
    GNU风格 ARM汇编语法2
    GNU风格 ARM汇编语法1
  • 原文地址:https://www.cnblogs.com/songhe364826110/p/9195542.html
Copyright © 2011-2022 走看看