栈、队列总结
概念
- 栈(stack)是一种运算受限的线性表。栈只能从末尾插入或删除数据。我们把这一端称为栈顶,对应地,把另一端称为栈底。
- 队列(queue)是一种线性表。它允许在表的某一端进行插入操作,在另一端进行删除操作。我们把进行删除操作的一端称作队列的队尾,把进行插入操作的一端称作队列的队首。
实现
注:由于栈和队列的实现方法不同,故分开讲解。
栈
- 使用一个数组模拟栈,用top表示栈顶。如果插入数据,则++top,删除则–top。
- 使用STL库中自带的stack(栈),以下为stack中常见的命令:
1 stack.push(x)//向栈中添加元素x 2 stack.pop()//删除栈顶的元素 3 stack.size()//栈的大小 4 stack.top()//返回栈顶的元素 5 stack.empty()//返回是否为空栈(即栈中是否没有元素),如果是则返回true