1、栈(stack)
1.1 栈的定义和特点
栈是仅在表尾进行插入、删除操作的线性表(最后插入的会被最先删除)
“后进先出” (Last in first out)
简称 LIFO 结构
入栈示意图:
出栈示意图:
1.2 栈的应用
如果求解问题时具有“后进先出”的特性,则算法中必然要用到栈。
数制转换, 括号匹配的检验, 行编辑程序, 迷宫求解, 表达式求值, 八皇后问题, 函数调用, 递归调用的实现
2、队列(queue)
2.1 队列的特点
插入只能在队尾,且只能删除队头元素。(类似排队:新来的在队尾,从队头离开)
“先进先出”(First in first out)
简称 FIFO 结构
2.2 队列的应用
解决排队问题
*脱机打印输出:按申请的先后顺序依次输出。
*多用户系统中,多个用户排成队,分时的循环使用CPU和主存。
*按用户的优先级排成多个队,每个优先级一个队列。
*实时控制系统中,信号按接收的先后顺序依次处理。
*网络电文传输,按到达的时间先后顺序依次进行。