- 数据结构与算法(Java版·第2版)
- 王思乐 石强等编著
- 360字
- 2024-05-10 12:17:34
1.3.2 数据结构的C++语言描述
C++是对C语言的改进和扩充,它以C语言为基础,包含了整个C语言,具备C语言的全部特性、属性和优点,同时,添加了对面向对象编程的完全支持。因此,采用C++描述数据结构,可以仍采用和C语言描述一样的方式,也可以采用面向对象的方式描述。
采用面向对象的方式描述时,数据对象的类型可被描述成一个类,如
![](https://epubservercos.yuewen.com/1EC278/29013045504427706/epubprivate/OEBPS/Images/17_03.jpg?sign=1739224405-IuOW0oK6ywnqxVZnOFuHebEGUisrFt8q-0-9c552711003a31c1bded1ca66ade8d34)
对数据对象的关系和操作的描述也是通过定义类的形式,将对数据对象关系的存储与对数据对象操作的定义封装到一个类中。数据对象的关系通过类的私有数据描述体现,数据对象的操作被描述成类的成员函数,较好地保证了数据结构的抽象和独立。
例如,对于顺序存储a1,a2,…,an的数据结构,描述如下:
![](https://epubservercos.yuewen.com/1EC278/29013045504427706/epubprivate/OEBPS/Images/17_04.jpg?sign=1739224405-asqOcJv4yER8FX41D9WTJpUGxGzMY9UI-0-57826e39c627c3f06b7eddf918cf3cbb)
对于链式存放a1,a2,…,an的数据结构,存放每个数据元素的结点可以定义为结点类:
![](https://epubservercos.yuewen.com/1EC278/29013045504427706/epubprivate/OEBPS/Images/17_05.jpg?sign=1739224405-eBDwgl7on0HbL4qgPZVw6dXTdw17IrtY-0-c1a3c82c2b18544d60d36f442dbdbea5)
链式存放a1,a2,…,an的链表可描述为由上述结点类构成的链表类:
![](https://epubservercos.yuewen.com/1EC278/29013045504427706/epubprivate/OEBPS/Images/17_06.jpg?sign=1739224405-Lfyou9NLZ6hHLoCpQvcJTmlSRTUWk30U-0-3ceb60ac067ffa781f57b38db9e4fd6f)
![](https://epubservercos.yuewen.com/1EC278/29013045504427706/epubprivate/OEBPS/Images/18_01.jpg?sign=1739224405-iOo9MTLqYjW9Bd4gOH8nVAL8zuaCPh7J-0-105ff222cc10994eaef04418ec434950)