函数的工作借助于栈。
栈在内存中是一块特殊的存储空间,它的存储原则是“先进后出”,最先被存储的数据最后被释放。
esp被称为栈顶指针,ebp称为栈底指针,通过这两个指针寄存器保存当前栈的起始地址与结束地址。
esp与ebp之间所构成的空间便成为栈帧。通常,在VC++中,栈帧中可以寻址的数据有局部变量、函数返回地址、函数参数等。不同的两次函数调用,所形成的栈帧也不同。当由一个函数进入到...
分类:
其他好文 时间:
2015-01-09 15:34:44
阅读次数:
258
题目:
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
思路:使用快慢两个指针。开始时,两个指针同时指向head,之后slow每次前行一步,fast每次前行两步。如果链表有环,这两个指针一定会相遇,如果没有...
分类:
编程语言 时间:
2015-01-07 13:16:22
阅读次数:
172
Swap的简单实现//C语言方式(by-pointer):
template
bool swapByPointer(Type *pointer1, Type *pointer2)
{
//确保两个指针不会指向同一个对象
if (pointer1 == NULL || pointer2 == NULL)
{
return false;
}...
分类:
其他好文 时间:
2015-01-01 11:19:13
阅读次数:
195
1,双向链表简介。双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。2,例子要求:完成双向链表的插入、删除以及查找,将学生管理系统使用的数组,以双向链表的方式实现,能够支持无限制的学生人数的增删改查以及保存。3,代码实现。#include #inc...
分类:
编程语言 时间:
2015-01-01 00:15:18
阅读次数:
318
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
题目的意思是判断链表中有没有环
思路:
定义两个指针,一个慢指针,一个快指针,慢指针一次走两步,快指针一次走一步,如果有环,那么慢、快指针一...
分类:
其他好文 时间:
2014-12-26 20:20:32
阅读次数:
191
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes
of the first two lists.
题目意思为合并两个链表,不能用额外的空间(新链由两个链拼接而成)
思路:
比较简单,直接定义两个指针,分别...
分类:
其他好文 时间:
2014-12-25 22:09:16
阅读次数:
186
问题描述:找出链表中倒数第K个节点思路分析:用两个指针,一前一后,保持k个距离,前面的指针移动到末尾,后面的指针就刚好直到第k个节点,要考虑到k为0,倒数第k个节点不存在的情况。参考代码:ListNode* FindKthToTail(ListNode * pHead,unsigned int k)...
分类:
其他好文 时间:
2014-12-23 12:17:09
阅读次数:
116
问题描述: 输入一个整数数组,实现一个函数来调整该数组中的数字顺序, 是的所有奇数位于数组的前半部分,所有偶数位于后半部分。 思路分析: 使用两个指针,一个指向数组头,一个指向数组尾,相向运动,一个在前面找偶数, 一个在后面找奇数,找到后互换,两个指针相遇则结束。 参考代码: void Record...
分类:
编程语言 时间:
2014-12-21 23:25:47
阅读次数:
248
一、原题
Linked List Cycle
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
二、分析
选用两个指针扫描链表,一个速度快,一个速度慢,若两个指针相遇,说明有环。
三、...
分类:
其他好文 时间:
2014-12-18 20:44:05
阅读次数:
157
总结:结构体里面有vector等成员时,不要用memset清零(从库的跟踪中我发现向量是使用名称为“_Myproxy”、“_Mynextiter”这两个指针来寻找与之相邻的值的,在我们定义一个向量时,它便初始化一个“_Myproxy”,而我的代码却在类的构造函数中对定义的结构体执行了一个清零的操作)...
分类:
其他好文 时间:
2014-12-17 15:58:19
阅读次数:
238