ADT抽象数据类型
abstract data type,ADT是带有一组操作的一些对象的集合。Java中的Integer,String等就是抽象数据类型。
1-表ADT
1.1 概念的引入
A0,A1,A2,…,A(N-1)的一般表,我们说这个表的大小是N,我们将为0的表成为空表。
1.2 链表
链表由一些节点组成,这些节点不必在内存中相连,每个节点均含有表元素和到包含表元素后继节点的链(link),我们称之为next链,最后一个单元引用null
1.2.1单向链表
1.2.2双向链表
让每一个节点持有一个指定他在表中的前驱结点的链,称之为双链表。
2-栈ADT
限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶top,栈的操作有pop,push操作
栈的后缀模式
后缀 或者 逆波兰 记法,使用一个栈,当见到一个数值时就推入栈中,在遇到一个运算符时,该运算符作用于从该栈弹出的两个数(符号)上,再将计算结果推入栈中。
eg:a+b*c+(d*e+f)*g转化为后缀模式:
abc*+de*f+g*+
3-队列ADT
想栈一样,队列也是表(queue),然而,使用队列时候插入在一端进行而删除在另一端进行。
基本操作
enqueue(入队),他是在表的末端插入一个元素,dequeue(出队),他是删除并返回在表的开头的元素。
第一次使用MarkDown编辑文章,感觉很新鲜,也很方便。这篇就当是测试吧。。。