前言:
抽象数据类型(ADT(abstract data type))是一些操作的集合。抽象数据类型是数学的抽象;在ADT的定义中根本没有涉及如何实现操作的集合。
整数,实数及布尔量有与它们相关的操作,而抽象数据类型也有自己额相关操作。对于集合ADT,有并,交,测定大小,取余等操作。
表,栈和队列
表
- 操作:
插入,删除,查找… - 应用:
多项式ADT(一元多项式)
基数排序(线形时间排序)
多重表(大学的课程注册)
栈:
- 操作:
入栈,出栈 - 应用:
平衡符号
后缀表达式
函数的调用
队列:
- 操作:
入队,出队 - 应用:
行式打印机
买票队列
计算机网络访问
接线员的操作(大公司的传呼)
树
对于大量的输入数据,链表的线性访问时间太慢,不宜使用。所以产生了另一种简单的数据结构:树,其大部分操作的平均运行时间为O(logN)。
定义:
定义树的一种自然方法是递归的方法,一根树是