一、基本概念
数据结构即是一个数据对象,同时这个对象的实例以及构成实例的数据元素都存在着联系,这种联系通过相关函数描述。
___因此研究数据结构,关心的是 数据对象(实际上是对象的实例)的①数据描述方法(数据在计算机内存和磁盘上的存储方式) 和 ②相关函数的具体实现。
- 数据结构的研究方面:
- C++程序常用的数据描述方法:数组描述和链式描述;——STL容器(vector和list0)大致相当于线性表的数组描述方法和链式描述方法。
- 相关函数的具体实现:C++中已经提供了基本数据类型(int、bool等)的实现,其他的数据对象(线性表、栈、队列等)可以使用 基本数据类型 结合 C++类、数据、指针组合 实现。
- 数据元素(即某个数据结构的基本构成元素)可以是:
- 不可分割的“原子”;
- 复合类型。(“原子”和复合类型都整体作为对象的数据元素)
抽象数据类型(ADT)和语言描述
用抽象数据类型说明数据对象的 实例 和 它进行的操作 。(默认在抽象数据类型描述中省略并隐含 创建实例 和 撤销实例 的说明)
- 抽象数据类型的说明独立于所有语言描述;
- 所有对抽象数据类型的语言描述都必须满足抽象数据类型的描述。
抽象类
C++中对 抽象数据类型 的抽象语言描述。(仅支持C++语言描述)
- C++中有具体类和抽象类。抽象类没有实现代码的成员函数,即纯虚函数(以0作为初始值说明)。——具体类是没有纯虚函数的类,只有具体类才可以实例化。而用抽象类描述类的成员,只是不进行代码实现。因此只能通过抽象类派生出具体类,再进行实例化。