一.栈和队列
栈和队列都属于线性结构,都是线性表的一种。其特点是栈和队列支持的操作是线性表的一个子集。
二.栈
1.栈是先进后出(Last In First Out)的线性表。
2.一般用一段连续内存空间作为存储.在这片空间上设置2个指针一个整形变量,其中base指向该空间的第一个存储单元,top指向下一个空单元,stacksize指示栈的长度。空栈的判定是base==top。
3.最主要的两个操作为Pop(SqlStack &S,ElemType &E)从栈内弹出一个数据存入E中,Push(ElemType &E,SqlStack &S)把E元素存入栈。
4.栈有以下应有:括号配对(左括号压栈,右括号要么与栈顶配对,此时栈顶元素出栈,要么不合法)、表达式求值(数值OPND一个栈,操作符OPTR另一个栈,设置优先级),迷宫寻路(走过的路径存入栈,走遍了离开栈),数值转换(先转换的后输出)。
三.队列
1.队列是先进先出(First In First Out)的线性表
2.一般用链式表示。队列头设有两个指针:front,rear.front总是指向队列最前的元素,出列的操作在此发生;rear总是指向队列最后的元素,入列的操作在此进行,空队列的判定是front==rear。
3.最主要的两个操作是EnQueue(ElemType &E,LinkQueue &Q)E元素入队列和DeQueue(ElemType &E,LinkQueue &Q)对尾元素出队列存入E中。
4.队列可以用来模拟实际生活中的排队等待模型中的队伍。