数据结构
KevinIceFire
走在路上,跑起来。
展开
-
一个由C/C++编译的程序占用的内存分为以下五个部分
全局变量、静态局部变量保存在全局数据区,初始化的和未初始化的分别保存在一起; 普通局部变量保存在堆栈中; 全局变量和局部变量在内存里的区别? 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(h转载 2013-09-06 21:16:03 · 867 阅读 · 0 评论 -
翻转单词顺序(两次旋转)
//字符串翻转:I am a student. 变换为 student. a am I void Reverse(char *pBegin, char *pEnd) { if (pBegin == NULL || pEnd == NULL) return; while (pBegin < pEnd) { char temp = *pBegin; *pBegin = *pEnd;原创 2013-09-06 16:26:47 · 761 阅读 · 0 评论 -
用两个栈实现队列
队列声明如下: template class CQueue { public: CQueue(); ~CQueue(); void appendTail(const T& node) T deleteHead(); private: stack stack1; stack stack2; }; template void CQueue::appendTail(const T&原创 2013-09-02 13:55:02 · 553 阅读 · 0 评论 -
二叉树镜像
完成一个函数,输入一个二叉树,该函数输出他的镜像: struct BinaryTreeNode { int m_nValue; struct BinaryTreeNode *m_nLeft; struct BinaryTreeNode *m_nRight; }; void MirrorRecursive(BinaryTreeNode *pNode) { if (pNode == NUL原创 2013-09-05 14:40:19 · 605 阅读 · 0 评论 -
两个链表的第一个公共结点
输入两个链表,找出他们的第一个公共结点: struct ListNode { int value; struct ListNode *next; }; unsigned int GetListLength(ListNode *pHead) { ListNode *pNode = pHead; unsigned int length = 0; while (pNode != NULL)原创 2013-09-05 22:47:31 · 633 阅读 · 0 评论 -
堆和栈的区别
堆 和 栈的 区别(经典) 转载一篇理解堆和栈区别的好文章 此文章虽然是面向C/C++程序员写得,但是对咱们Java程序员还是很有帮助的。 堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。转载 2013-09-20 23:58:25 · 557 阅读 · 0 评论