假设链表中每一个节点的值都在0~9之间,那么链表整体就可以代表一个整数 给定两个链表的头节点head1和head2,请生成代表两个整数相加值的结果链表 传统做法 先把链表生成 整数 然后相加 这样的有个溢出问题 介绍一种做法: 利用栈结构求解: 1、 将两个链表分别从左到右遍历,遍历过程中将值压栈, ...
分类:
编程语言 时间:
2017-09-10 16:41:26
阅读次数:
160
给定一个链表的头节点head,判断是否是回文结构 1->2->1 返回true 进阶: 如果链表长度N,时间复杂度O(N) 额外空间O(1) 方法一 利用栈结构(需要额外空间) 从左到右遍历,一次压栈。 这样的到的 从栈顶到栈底的节点值出现顺序会与原链表从左到右的值出现顺序相反。 废话不多说,上代码 ...
分类:
编程语言 时间:
2017-09-10 12:27:15
阅读次数:
164
在说内联函数之前,先说说函数的调用过程。 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保 存地址继续执行。也就是通常说的压栈和出栈。因此 ...
分类:
编程语言 时间:
2017-09-06 09:56:42
阅读次数:
148
从上面的例子可以看出,变量值从低地址到高地址存放。 ...
分类:
其他好文 时间:
2017-09-04 17:45:15
阅读次数:
123
题目: 输入一个链表,从尾到头打印链表每个节点的值。 思路: 很容易想到用栈实现,后进先出;遍历一遍节点压栈,弹出栈的数值;也可以用递归实现; 代码: 递归版: 用栈实现: ...
分类:
其他好文 时间:
2017-09-04 15:11:33
阅读次数:
204
题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度 ...
分类:
其他好文 时间:
2017-09-03 12:17:21
阅读次数:
118
函数堆栈的三个用途: 1.进入函数前保存环境变量和返回地址; 2.进入函数时保存实参的拷贝; 3.保存函数体内的局部变量。 函数调用规范:定义函数实参压栈,退栈以及堆栈释放方式。 1._cdecl:函数默认规范,参数从右到左依次压栈,便于可变参数函数,C++静态成员函数和友元函数使用此规范。 2._ ...
分类:
编程语言 时间:
2017-09-02 18:02:16
阅读次数:
165
1. Activity共有四种启动方式(android:launchMode) (1) standard:默认方式,不用再次配置 standart模式就是一个栈的模式,默认每次跳转到一个新的Activity都会新建一个实例,不管这个实例是否存在。每次跳转就新建,压栈,每次返回就pop弹栈。 (2) ...
分类:
移动开发 时间:
2017-09-02 15:34:26
阅读次数:
298
1.函数调用约定 函数的调用约定,顾名思义就是对函数调用的一个约束和规定(规范),描述了函数参数是怎么传递和由谁清除堆栈的。它决定以下内容: (1) 函数参数的压栈顺序; (2) 由调用者还是被调用者把参数弹出栈; (3) 产生函数修饰名的方法; 在看C++ primer中就提到函数声明包括:返回值 ...
分类:
其他好文 时间:
2017-09-01 13:40:33
阅读次数:
288
一、题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 二、解法 ...
分类:
其他好文 时间:
2017-08-30 11:53:17
阅读次数:
142