C#学习笔记之——堆栈,队列和两个栈实现一个队列的算法
栈是一个内存数组,是一个LIFO的数据结构。数据只能从栈顶插入和删除。堆是一块内存区域,在队里可以分配大块内存用于存储某类型的数据对象。
Stack(堆栈)
Push() |
将对象插 Stack的顶部.( 入栈操作) |
Pop() |
移除并返回Stack顶部的对象.(出栈操作) |
Peek() |
返回位于stack顶部的对象,但 移除. |
Contains() |
确定某元素是否在栈中 |
Clear() |
从statck中移除所有对象 |
Count |
获取栈中包含的元素
|
Queue(队列)
Enqueue() |
将对象添加到Queue的结尾处, 队. |
Dequeue() |
移除并返回位于Queue开始处的对象 |
Peek() |
返回位于Queue开始处的对象但 将其移除 |
Contains() |
确定某元素是否在Queue中 |
Clear() |
从Queue中移除所有对象 |
Count |
获取Queue中包含的元素数 |
2019年6月7日分割线用一下,还是写个应用好点,比如两个栈实现队列的操作:
using System.Collections.Generic;
class Solution
{
Stack<int> pushStack=new Stack<int>();//进
Stack<int> popStack=new Stack<int>();//出
public void push(int node)
{
while(popStack.Count>0){
pushStack.Push(popStack.Pop());
}
pushStack.Push(node);
}
public int pop()
{
while(pushStack.Count>0){
popStack.Push(pushStack.Pop());
}
return popStack.Pop();
}
}