栈是非常经典的一个数据结构,一种只能在一端进行插入和删除操作的特殊线性表。它最主要的特点就是遵循着数据时后进先出的原则。具体操作模型为:
经典算法:
1.进栈:
(1)执行进栈操作时,首先要判断该栈是否已经满,如果满了会出现溢出的情况;否则可以执行进栈操作;
(2)栈顶有top指针(或标示)指向栈顶数据,该top++,data[top]等于新进栈的数据。
2.退栈:
(1)执行退栈操作时,首先要判断该栈是否为空,若为空则无法执行退栈操作;否则可以执行退栈操作;
(2)x=data[top](退栈数据给x),top--(top指向下面一个元素)
代码演示:
//进栈 public void Push(object o){ //判断栈是否是满的 if (IsFull()) { Console.WriteLine("栈已满"); return; } else { data[++top] = o; } } //出栈 public object Pop() { object temp = null; //判断栈是否为空 if (IsEmpty()) { Console.WriteLine("栈已空"); return temp; } else { temp = data[top]; top--; return temp; } }
源码:栈的源码