《编程导论(Java)·5 链表、数组和栈》
数据抽象使得用户程序员在编写客户程序时,摆脱该数据类型的实现细节而仅仅关心该数据类型的接口。在计算机科学中,有一些重要的数据抽象——数据结构,应该尽早地介绍。计算机科学研究的数据结构主要有线性表、栈、队列、集合、图、树等等。《编程导论(Java)》不是专门介绍《数据结构》的课程,所以仅介绍链表(linked list)和数组(array)和栈,将它们作为熟悉分支、循环、面向对象的练习场。同时,作为体会OO概念的练习场。
吐槽
这里先谈谈《数据结构》课程与实现语言的事。
《数据结构(C语言版)》严蔚敏、吴伟民是经典教材,作者在前言中清楚的说明:
“全书中采用类C语言作为数据结构和算法的描述语言,在对数据的存储结构和算法进行描述时,尽量考虑C语言的特色,如利用数组的动态分配实现顺序存储结构等。虽然C语言不是抽象数据类型的理想描述工具,但鉴于目前和近一两年内(注:版次1997.4),“面向对象程序设计”并非数据结构的先修课程,故本书未直接采用类和对象等设施,而是从C 语言中精选了一个核心子集,并增添C+