#include
#include
#include
typedef struct Node//定义一个链表结构体
{
int data;
struct Node* pNext;
}NODE,*PNODE;
typedef struct Stack//定义一个栈结构体
{
PNODE pTop;
PNODE pBottom;
}STACK,*PSTACK;
void initStac...
分类:
其他好文 时间:
2015-01-01 18:36:01
阅读次数:
156
栈遵循LIFO ( last in first out) 即后入先出原则栈结构类似于叠盘子 后叠上去的要先拿走 才能拿到下面的盘子因此stack是一种访问受限的线性存储结构用单向链表的结构来存储stack类1 class stack2 {3 stack();4 bool empty(...
分类:
其他好文 时间:
2014-12-27 00:17:41
阅读次数:
288
C函数调用的栈结构可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈。例如,对于函数: void fun(int a, int b, int c) { int d; ......
分类:
编程语言 时间:
2014-12-17 20:38:28
阅读次数:
255
最小栈
最小栈其实和栈没有什么区别的,唯一的区别在于最小栈是可以在O(1)时间内得到当前的栈空间里,最小的值是多少。
最小栈的操作
最小栈的操作和普通栈的操作没有太大区别,唯一多了一个方法就是getMin()方法,这个方法是用来获取当前栈内的最小值。其他方法就是Push(), Pop(), Top()...等
在O(n)时间内找到新的最小值
这里就厉害了,先说普通的O...
分类:
编程语言 时间:
2014-12-05 07:07:28
阅读次数:
293
栈结构颠倒一个栈的元素顺序问题:假设有一个栈{1,2,3,4,5,6},6是栈顶,1是栈底,现在要把这个栈中的元素颠倒一下。思路:最简单的办法当然是把栈中的元素依次pop到一个数组中,然后把这个数组再push回栈里面即可,但这样需要O(n)的辅助空间。下面介绍一种仅使用O(1)辅助空间的算法,我们知...
分类:
编程语言 时间:
2014-11-27 20:21:26
阅读次数:
237
tips:今天预习四脚猫的php数据结构,看到这个例子,研究了一下,算是对栈结构有个初步了解。 栈,体现的是后进先出,即LIFO。队列,体现的是先进先出,即FIFO。栈array_pop() //尾出array_push() //尾进或array_shift()//头进array_unshift()...
分类:
编程语言 时间:
2014-11-18 23:48:06
阅读次数:
377
任何程序在运行过程中都需要使用堆栈,操作系统为每一个程序(进程及线程)设置一个堆栈。在使用高级语言编程时,源程序中使用的函数调用、局部变量都要用到堆栈,由编译器来负责生成有关的机器指令。我的理解,堆栈就是维护当前线程中运行状态的一个数据结构,这种状态包括:需要传递的变量,函数的返回地址,局部变量等等。
与堆栈相关的 3 个寄存器是:SS, ESP, EBP。
ESP 寄存器中的内容作为堆栈的当...
分类:
其他好文 时间:
2014-11-17 17:50:33
阅读次数:
293
1.后序遍历的非递归实现。(左右根)难点:后序遍历的非递归实现是三种遍历方式中最难的一种。因为在后序遍历中,要保证左孩子和右孩子都已被访问并且左孩子在右孩子前访问才能访问根结点,这就为流程的控制带来了难题。下面介绍两种思路。思路:有个关键的就是unUsed这个标识符。当unUsed=1时,表示该节点...
分类:
其他好文 时间:
2014-11-11 16:28:14
阅读次数:
171
MDC与NDC除了存储方式(MDC采用MapNDC采用堆栈结构)有区别,其他都一样的 关键点 A -//引入log4j MDC类org.apache.log4j.MDC -//设置值 -MDC.put("fId", "sa...
分类:
其他好文 时间:
2014-10-30 18:55:13
阅读次数:
195