14_线性表的本质和操作

关键词:线性表

1. 线性表(List)的表现形式

  • 零个多个数据元素组成的集合
  • 数据元素在位置上是有序排列的
  • 数据元素的个数是有限的
  • 数据元素的类型必须相同

2. 线性表的抽象定义

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

(a0, a1, a2, ..., an-1)
ai是表项(数据元素), n是表长度

3. 线性表的性质

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

4. 线性表的常用操作

  • 将元素插入线性表
  • 将元素从线性表中删除
  • 获取目标位置处元素的值
  • 设置目标位置元素的值
  • 获取线性表的长度
  • 清空线性表

5. 线性表抽象类的实现

List.h

#ifndef LIST_H
#define LIST_H

#include "Object.h"

namespace DTLib
{

template <typename T>
class List : public Object
{
public:
    virtual bool insert(int i, const T& e) = 0;
    virtual bool remove(int i) = 0;
    virtual bool set(int i, const T& e) = 0;
    virtual bool get(int i, T& e) const = 0;
    virtual int length() = 0;
    virtual bool clear() = 0;
};

}

#endif // LIST_H

6. 小结

  • 线性表是数据元素的有序并且有限的集合
  • 线性表中的数据元素必须是类型相同的
  • 线性表可用于描述排队关系的问题
  • 线性表在程序中表现是一种特殊的数据类型
  • 线性表在C++中表象为一个抽象类

声明:此文章仅是本人在学习狄泰学院《数据结构实战开发教程》所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

    原文作者:jacob2359
    原文地址: https://www.jianshu.com/p/bb4fce1f0e80
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞