#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
现象:1.当case比较复杂的时候(含有for循环对mem进行读/写) 发现for循环时总是有汇编指令不执行跳过去了,(其实是汇编不熟和指令太多无法理智分析指令了)。 事实是指令是对的,但执行错了(所以debug时一定要保证不改变问题本质的情况下尽量简化case,编译出最简单的指令序列,方便分析指令...
分类:
其他好文 时间:
2014-12-26 20:05:04
阅读次数:
120
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022
题意:有n辆火车,给出入栈和出栈的顺序,编写程序判段出栈是否正确。
样例:3 123 132 是可以的
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
in...
分类:
其他好文 时间:
2014-12-22 09:33:55
阅读次数:
156
一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多!二、常见脱壳方法 预备知识1.PUSHAD (压栈) 代表程序的入口点, 2.POPAD (出栈)....
分类:
其他好文 时间:
2014-12-17 12:18:23
阅读次数:
197
题目:输入一个链表,输出链表中倒数第k个节点,为了符合大多数人的习惯,本题从1开始计数,即链表的尾巴节点是倒数第一个节点。
方法1:先遍历链表得到链表的个数n,倒数第k个节点就是n-k+1再遍历一次链表,找到第n-k+1个节点就是倒数第k个节点;这种方法遍历两次链表;
方法2:先遍历链表把链表压入一个栈,再出栈,第k次出栈就是第k个节点;
方法3:先反转链表,再遍历
方法4:定义两个指针,...
分类:
编程语言 时间:
2014-12-16 17:14:23
阅读次数:
153
原题链接:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/
题目大意:中序遍历二叉树
解题思路:中序遍历二叉树,中序遍历二叉树的左子树,访问根结点,中序遍历二叉树的右子树。非递归实现时,用一个栈模拟遍历过程即可。因为需要先遍历左子树,所以每个结点先入栈,出栈时访问。
vector inorderTraversal(...
分类:
其他好文 时间:
2014-12-16 11:53:51
阅读次数:
172
原题链接:https://oj.leetcode.com/problems/binary-tree-postorder-traversal/
题目大意:后序遍历二叉树
解题思路:后序遍历二叉树的步骤:后序遍历二叉树的左子树,后序遍历二叉树的右子树,访问根结点。非递归实现时,用一个栈模拟遍历过程。由于访问完左子树后访问右子树,栈中元素要起到转向访问其右子树的作用,但是不能像先序和中序遍历那样出栈...
分类:
其他好文 时间:
2014-12-16 11:53:41
阅读次数:
183
1.内联函数就是指函数在被调用的地方直接展开,编译器在调用时不用像一般函数那样,参数压栈,返回时参数出栈以及资源释放等,这样提高了程序执行速度。
2.Java语言中有一个关键字final来指明那个函数是内联的,例:
public final void doSomething() {
// to do something
}
该方法在被调用时,会在调用处直接展开...
分类:
编程语言 时间:
2014-12-15 19:06:00
阅读次数:
172
二叉树的遍历方式基本就是前序遍历,中序遍历,后序遍历和层次遍历。从代码的角度来说,前三种最简单的就是用递归了,代码会非常简洁。但是递归有一个缺陷,就是当二叉树的节点非常多的时候,层次深的递归会不停的进行程序的压栈和出栈操作,效率比较低。这里就不写递归算法了,只写四种遍历的非递归算法。
先定义二叉树的节点如下:
/**
* Definition for binary tree
* pub...
分类:
编程语言 时间:
2014-12-15 13:47:08
阅读次数:
305
栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
每一个栈帧都包括了局部变量表,操作数栈,动态连接,方法返回地址和一些额外的...
分类:
编程语言 时间:
2014-12-14 13:18:31
阅读次数:
227