
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.3.2 数据结构的C++语言描述
C++是对C语言的改进和扩充,它以C语言为基础,包含了整个C语言,具备C语言的全部特性、属性和优点,同时,添加了对面向对象编程的完全支持。因此,采用C++描述数据结构,可以仍采用和C语言描述一样的方式,也可以采用面向对象的方式描述。
采用面向对象的方式描述时,数据对象的类型可被描述成一个类,如

对数据对象的关系和操作的描述也是通过定义类的形式,将对数据对象关系的存储与对数据对象操作的定义封装到一个类中。数据对象的关系通过类的私有数据描述体现,数据对象的操作被描述成类的成员函数,较好地保证了数据结构的抽象和独立。
例如,对于顺序存储a1,a2,…,an的数据结构,描述如下:

对于链式存放a1,a2,…,an的数据结构,存放每个数据元素的结点可以定义为结点类:

链式存放a1,a2,…,an的链表可描述为由上述结点类构成的链表类:

