数据结构用于表示数据在计算机内存中存储的位置和方式,通常分为以下3种数据类型:

  1. 基本数据类型
    基本数据类型(Primitive DataType)是不能以其他类型来定义的数据类型,或称为标量数据类型(Scalar Data Type)。几乎所有的程序设计语言都会提供一组基本数据类型,例如 C++语言中的基本数据类型包括整数(int)、浮点数(foat)、字符(char)等。

  2. 结构数据类型
    结构数据类型(Structured Data Type)也被称为虚拟数据类型(Virual DataType),是一种比基本数据类型更高一级的数据类型,例如字符串(string)、数组(array)、指针(pointer)、列表(list)、文件(fle)等。

  3. 抽象数据类型
    抽象数据类型(Abstract Data Type,ADT)比结构数据类型更高级,是指一个数学模型以及定义在此数学模型上的一组数学运算或操作。我们可以将抽象数据类型看成是一种值的集合,以及在这些值上进行的运算和所代表的属性组成的集合。也就是说,抽象数据类型在计算机中体现了一种信息隐藏(Information Hiding)的程序设计思想以及表示了信息之间的某种特定的关系模式。例如,堆栈(Stack)就是一种典型的抽象数据类型,具有后进先出的数据操作方式。

我们将使用泛型编程来实现各种数据结构。
C++泛型编程是通过模板实现代码与具体数据类型无关的编程范式,核心是函数模板和类模板,支持多种数据类型的代码复用。

  • 函数模板:通过template定义通用函数,编译器根据实参类型自动生成具体函数。例如:
template<typename T>
void Swap(T& a, T& b) { /* 交换逻辑 */ }
  • 类模板:通过template定义通用类,支持多种数据类型的实例化。例如:
template<class T>
class Stack { /* 栈的实现 */ };
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐