第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来实现线性表的顺序存储结构和链式存储结构。

【List.h】

 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;    //在位置i处插入新元素e
14     virtual bool insertTail(const T &e) = 0;       //在尾部插入新元素e
15     virtual bool remove(int i) = 0;                //删除位置i处的元素
16     virtual bool set(int i, const T &e) = 0;       //设置位置i处的元素为e
17     virtual bool get(int i, T &e) const = 0;       //获取位置i处的元素,通过参数e返回
18     virtual T get(int i) const = 0;                //获取位置i处的元素,通过返回值返回
19     virtual int length() const = 0;                //获取线性表长度
20     virtual void clear() = 0;                      //清空线性表
21 };
22 
23 }
24 
25 #endif // LIST_H

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

猜你喜欢

转载自www.cnblogs.com/songhe364826110/p/9195542.html