目录
表(list)
描述:
表是一组 可数的、有序的数值,可以包含相同的数值。
(可数指的是表包含的数值个数可以获取;有序指的是表中的所有数值都是按一定的顺序存放的。例如表 a,b,c, 表的大小是3;b在a的后一位,在c的前一位。)
操作:
- MakeEmpty()
- DeleteList()
- PrintList()
- Find()
- FindKth()
- Insert()
- Delete()
- Next()
- Previous()
- IsEmpty()
- ......
实现:
- 数组(array)
O(n): PrintList() 、 Find()、 Insert()、Delete()
O(1): FindKth()
- 链表(linked list)
包括双链表、循环链表
O(n): PrintList() 、 Find()、FindKth()、Delete()
O(1):Insert()、
链表应用:
多项式:表示一元多项式
基数排序(radix sort)
栈(stack)
描述:
栈是先进后出的表。
操作:
- Push()
- Pop()
实现:
- 数组
- 链表
应用:
- 平衡符号
编译器检查程序的语法错误,方括号,小括号,大括号是否对应。
- 后缀表达式
科学计算器表示计算数和符号
- 函数调用
在函数调用时,主调函数的所有状态存储栈中。
队列(queue)
描述:
先进先出的表。
操作:
- Enqueue()
- Dequeue()
实现:
数组
应用:
打印机打印队列
窗口售票排队
电话呼叫等待队列
参考:
1.表
https://en.wikipedia.org/wiki/List_(abstract_data_type)
2.栈
https://en.wikipedia.org/wiki/Stack_(abstract_data_type)
3.队列
https://en.wikipedia.org/wiki/Queue_(abstract_data_type)