Algorithm
AlwaysOnMyWay
这个作者很懒,什么都没留下…
展开
-
树的镜像反转
树的镜像反转,先将树转换为做孩子有兄弟的二叉树,然后对二叉树的每一个右子树进行链表的反转操作(思路很重要)//树的镜像反转,转换为二叉树进行操作TreeNode* MirorReverse(TreeNode* root){ assert(root); if(root-转载 2011-10-08 00:30:23 · 1358 阅读 · 0 评论 -
STL 容器,算法,迭代器 总结
一、容器 作为STL的最主要组成部分--容器,分为向量(vector),双端队列(deque),表(list),队列(queue),堆栈(stack),集合(set),多重集合(multiset),映射(map),多重映射(multimap)。容器 特性所在头文件向量vector可以用常数时间访问和修改任意元素,在序列尾部进行插入和删除时,具有常数时间复杂度,对任意转载 2012-03-31 09:41:44 · 731 阅读 · 0 评论 -
各种垃圾回收算法的通俗解释(转)
引用计数( Reference Counting )算法1960 年以前,人们为胚胎中的 Lisp 语言设计垃圾收集机制时,第一个想到的算法是引用计数算法。拿餐巾纸的例子来说,这种算法的原理大致可以描述为: 午餐时,为了把脑子里突然跳出来的设计灵感记下来,我从餐巾纸袋中抽出一张餐巾纸,打算在上面画出系统架构的蓝图。按照“餐巾纸使用规约之引用计数版”的要求,画图之前,我必须先在餐巾纸转载 2012-03-31 09:39:00 · 569 阅读 · 0 评论 -
快排的递归和非递归实现
//快排的递归void quickSort1(int* root,int low,int high){ int pat=root[low]; if(low<high) { int i=low,j=high; while(i<j) { while(ipat) j--; root[i]=root[j]; while(i<j&&root[i]<pat原创 2011-11-07 15:22:17 · 5635 阅读 · 2 评论 -
二叉树非递归求深度
#include #include #include #include using namespace std;struct Node{ int data; Node *left; Node *right;};struct denode{ Node* node; int degree;};//二叉树非递归求深度int getDegree(Node* roo原创 2011-10-20 12:19:30 · 2216 阅读 · 1 评论 -
农夫过河问题实现
#include using namespace std;struct Condition{ int farmer; int wolf; int sheep; int cabbage;};//定义状态数组Condition conditions[100];char* action[100];//产生某个动作之后在状态更新void takeWolfOver(int i转载 2011-10-20 16:35:05 · 7498 阅读 · 0 评论 -
单链表逆置
单链表逆置非递归://单链表逆置非递归LinkNode* reverseLinkNode(LinkNode* head){ LinkNode *p,*q; LinkNode *tmp; p=NULL; q=head->Next; while(q) { t原创 2011-10-08 10:40:18 · 895 阅读 · 0 评论 -
如何求树中的两个节点的最近公共祖先?
如何求树中的两个节点的最近公共祖先?看到别人的一个比较好的写法如下,大多数人的写法是把父节点存入数组,然后遍历父节点数组寻找最后一个相同节点或者用含有指向父节点指针的树结构,向上遍历父节点找第一个相同节点为最近祖先节点struct Node{int data;N转载 2011-10-07 21:10:21 · 1825 阅读 · 0 评论 -
字符串函数实现(待更新)
strstr函数:char* strstr(char* s1,char* s2){ assert(s1&&s2); char *p,*q,*src; src=s1; while(*src!='\0') { p=src;q=s2; //while(*p++=原创 2011-10-07 21:52:01 · 542 阅读 · 0 评论 -
写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。
这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。 看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可转载 2011-10-09 14:42:07 · 4417 阅读 · 2 评论