前言:
抽象数据类型(ADT(abstract data type))是一些操作的集合。抽象数据类型是数学的抽象;在ADT的定义中根本没有涉及如何实现操作的集合。
整数,实数及布尔量有与它们相关的操作,而抽象数据类型也有自己额相关操作。对于集合ADT,有并,交,测定大小,取余等操作。
表,栈和队列
表
- 操作:
插入,删除,查找… - 应用:
多项式ADT(一元多项式)
基数排序(线形时间排序)
多重表(大学的课程注册)
栈:
- 操作:
入栈,出栈 - 应用:
平衡符号
后缀表达式
函数的调用
队列:
- 操作:
入队,出队 - 应用:
行式打印机
买票队列
计算机网络访问
接线员的操作(大公司的传呼)
树
对于大量的输入数据,链表的线性访问时间太慢,不宜使用。所以产生了另一种简单的数据结构:树,其大部分操作的平均运行时间为O(logN)。
定义:
定义树的一种自然方法是递归的方法,一根树是一些节点的集合。这个集合可以是空集;若非空,则一根树由称作根(root)的节点以及0个或多个非空的子树T1,T2…Tn组成,这些子树中每一棵的根都被来自根r的一条有向的边(edge)所连接。
树的遍历及应用
- 目录结构
设我们想列出目录中所有文件的名字。我们的输出格式为:深度为di的文件的名字将被di次跳格(tab)缩进后打印出来
staic void
<