购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 线性表的定义

线性表的定义

线性结构是由一组数据元素构成的数据结构,这些数据元素之间存在顺序关系。在计算机中,处理线性结构的数据结构称作“线性表”,线性表就像一个可以插入或删除数据元素的队伍,能够方便、快捷、高效地管理和操作数据。图2-1中的站点信息就是一个线性表。

根据火车票管理系统的功能需求,采用面向对象设计,可以用抽象类描述对应的操作要求。线性表的抽象类的定义如代码清单2-1所示。

代码清单2-1 线性表的抽象类的定义

template <class elemType>
class list {
 public:
  virtual void clear() = 0;  // 清空线性表
  virtual int length() const = 0;  // 获取线性表的长度,即元素个数
  virtual void insert(int i, const elemType &x) = 0;
  // 在第i个位置插入一个元素x
  virtual void remove(int i) = 0;  // 删除第i个元素
  virtual int search(const elemType &x) const = 0;
  // 搜索元素x是否在线性表中出现
  virtual elemType visit(int i) const = 0;  // 访问线性表第i个元素
  virtual void traverse() const = 0;  // 遍历线性表
  virtual ~list(){};
}; 

线性表的抽象类是一个类模板,模板参数是线性表中数据元素的类型,在列车运行计划中就是StationInfo。线性表的每一个基本操作都被定义为一个纯虚函数。除此之外,抽象类list还定义了一个函数体为空的虚析构函数,以防内存泄漏。

如无特殊说明,本书中的示例总会先给出一个模板抽象类,采用纯虚函数声明这一数据结构的功能与调用接口,再由派生类给定数据结构的具体实现。 arT9yqFalLaLP4kngw/GvyX14k2iWJOFIyy85nnBhI/PRZFXioQb9z3p/PWSSWCF

点击中间区域
呼出菜单
上一章
目录
下一章
×