一 概述 1.什么是数据结构? 数据结构是数据在内存中的存储结构,包含可接收类型、空间大小、数据提取方式、数据销毁方式、数据共享等方面。 二.JVM内存: 1.栈: 数据类型:基本类型变量与对象的引用变量,局部变量与方法的参数也在栈中分配空间。 栈中的每一个元素都叫做帧,元素进栈叫做压栈,元素出栈叫 ...
分类:
其他好文 时间:
2017-05-31 10:20:00
阅读次数:
111
1、内联函数是相对于宏函数而言的,为什么使用宏函数,原因是,宏函数只在预处理时进行简单的替换,没有函数调用的开销,压栈,跳转,返回,提高程序性能。对于一些短小而频繁使用的函数,可以使用内联函数。 2、普通函数加上inline,但是不一定进行内联编译,仍然不会进行宏展开。 3、要报inline关键字和 ...
分类:
其他好文 时间:
2017-05-28 15:26:39
阅读次数:
174
栈: 栈(Stack)是一个数据集合,可以理解为只能在一端进入或删除操作的列表 栈的特点:后进先出(last-in,first-out) 栈的概念: 1.栈顶 2.栈底 栈的基本操作: 1.进栈(压栈):push 2.出栈:pop 3.取栈顶:gettop 栈的python实现 不需要自己定义,使用 ...
分类:
编程语言 时间:
2017-05-26 13:11:40
阅读次数:
273
什么是递归?简单的说就是:函数自身调用自身。 “普通程序员用迭代,天才程序员用递归” 虽然递归 在运行时会不断出栈压栈,调用底层的寄存器,造成空间上的占用以及时间上的缓慢, 但在一些算法上面仍然是递归很实用 但需要注意的是: #递归是自己调用自己 很消耗时间,还会有消耗空间的危险,所以递归递归一定要 ...
分类:
编程语言 时间:
2017-05-23 23:43:14
阅读次数:
271
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是 ...
分类:
其他好文 时间:
2017-05-23 15:57:30
阅读次数:
152
调用约定(Callingconvention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定:1._cdecl按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于“C”函数或者变量,修饰名是在函数名前加下划线。对于“..
分类:
其他好文 时间:
2017-05-16 23:26:22
阅读次数:
260
创建一个对象都在内存中做了什么事情? 1:先将硬盘上指定位置的Person.class文件加载进内存。 2:执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。 3:在堆内存中开辟一个实体空间,分配了一个内存首地址值。new 4:在该实体空 ...
分类:
其他好文 时间:
2017-05-15 00:36:30
阅读次数:
223
递归的缺陷:当运行较多次数的压栈过程会导致运算量过大。可是每个尾递归都能够写成循环(用一个不土的说法就是迭代) fabonacii数列用迭代方式实现: #include<stdio.h> int Fibonacii(int n) { int temp = 0; int a = 1;//记得给头两个数 ...
分类:
其他好文 时间:
2017-05-05 21:51:37
阅读次数:
213
题目链接 按序列a进栈,问能不能按序列b出栈。 遍历b,如果当前元素进过栈了,那么必须和栈顶元素相同。如果没进过栈则按a序列压栈,直到遇到当前元素。 ...
分类:
其他好文 时间:
2017-05-02 19:48:14
阅读次数:
166
printf函数的计算顺序:先从右到左压栈,然后从左到右出栈。 例程: #include"stdio.h" int main() { int arr[] = { 1, 2, 3, 4, 5 }; int *ptr = arr; printf("%d %d\n", *ptr, *(++ptr)); r ...
分类:
编程语言 时间:
2017-04-26 20:52:28
阅读次数:
203