数据结构|算法
文章平均质量分 79
luno1
这个作者很懒,什么都没留下…
展开
-
二叉树C++实现
最近整理原来的一些代码,脑子有点不好使,还是记下来吧。//binary_tree.h,遍历包含了递归和非递归两种,层次遍历#ifndef _BINARY_TREE_H_#define _BINARY_TREE_H_template struct BiNode{ T data; BiNode* lchild, *rchild; };templateclass BiT原创 2012-09-06 18:06:23 · 11443 阅读 · 6 评论 -
上机_虚函数表内存分布(陈皓的<C++ 虚函数表解析>)
原文章链接是:http://blog.csdn.net/haoel/article/details/1948051讲的很生动,但是有些小问题,评论里面有些说的非常详细。实验一把class Base{public: virtual void f(){cout<<"Base::f()"<<endl;} virtual void g(){cout<<"Base::g()"<<endl;}原创 2012-10-10 01:55:47 · 4791 阅读 · 0 评论 -
<剑指offer>之栈和队列所有题目
【引言】stack和queue的题目不太多,而且几道题目大概思路要么是构造辅助stack或者queue,要么是根据stack的FILO和queue的FIFO特性下手有一定的技巧性【题目7】用两个队列实现栈用两个栈实现队列。队列声明如下,请实现它的两个函数append_tail和delete_head在队列的队尾添加数据和删除队头templateclass Queue_by_stack原创 2012-09-14 21:45:12 · 2325 阅读 · 0 评论 -
<剑指offer>二叉树专题
【题目5】使用前序遍历和中序遍历结果构造二叉树这个题目在http://blog.csdn.net/luno1/article/details/7951993,里面有提到,需要记住的是前序定根,中序定左右就行了,比如前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}。先看前序的第一个元素1,代表了要构造二叉树的根,中序序列列表里面查找1,找到后,可以判原创 2012-09-14 15:04:10 · 1583 阅读 · 0 评论 -
<剑指offer>之链表题目
【引言】 这几天在看写的很好,跟July的各有千秋,更加注重归纳总结,笔试面试临时抱佛脚,决定要啃下这其中的46道题目。OK,把每道题目自己实现,相同的归成一类。这次把所有的与list相关的题目列出来。【题目5】从尾到头打印list//思路:从尾到头打印list的话,考虑用stack先把各节点保存起来,遍历完以后再将stack弹出打印即可#include void print原创 2012-09-13 11:04:30 · 1965 阅读 · 0 评论 -
<剑指offer>_有趣的数组
【数组相关的题目】最近投简历,面试耽误不少进度,有些迷茫,不知道自己究竟适不适合程序员这行业,半道出家的娃只能且走且看,算法也只是突击了两个月,心里实在没地,觉得要是拿到那些CS大牛人不屑于顾的offer肯定欢天喜地 =_= I am a slow walker, but I never walk backward.【8旋转数组中的最小数】//题目:把一个数组最开始的若干数字搬到原创 2012-09-28 10:59:06 · 1904 阅读 · 0 评论 -
(搜狗两道笔试题)子数组乘积|等概率发生器
【题目】鄙视回来,只能说自己平时积累的不够,题目不难//@1 给定一个长度为N的数组,只允许使用乘法,不能用除法,计算任意N-1个数的乘积//类似于编程之美上的“需找子数组的最大乘积”,只不过题目要求返回所有乘积,要求时间复杂度是O(N)void SubMultiply(int *array, int len, int *result){ int i; int *forw原创 2012-09-10 23:09:58 · 2570 阅读 · 1 评论 -
跳台阶问题|斐波那契递归的复杂度问题|整数划分问题
【问题】台阶一共有N节,一次可以跳1节或者2节,问有多少次跳法?如果一次可以跳1节、2节或者3节呢?【分析】定义f(N)为第几节台阶时候的跳法,那么,N=1时,f(N)=1; N=2时, f(N)=2;因为有每次跳一步和一次跳两步两种当N>2时,如果第一次跳1阶,那么要跳到第N节有,需要将剩下的N-1节跳完,f(N-1);如果第一次跳2阶,那么需要将剩下的N-2节跳完,有f原创 2012-09-07 23:38:33 · 4492 阅读 · 0 评论 -
全排列问题(0907)
【问题】给出字符串或者一个数组的全排列,例如"abc",那么所有的排列组合有"abc"、"acb"、"bac"、"bca"、"cba"、"cab",对数组也是如此。【思路】递归首先固定第一个字符,a,那么,以a开头的剩下的组合,就变成了"bc"的组合,有"bc"、"cb";然后将原来字符串的第二个字符b与a交换,重复上一步的过程然后将第三个字符c与原字符的a交换,重复第一步的过原创 2012-09-07 21:30:46 · 1261 阅读 · 0 评论 -
单链表C++实现_0904
最近整理原来的博文,数据结构和算法,笔试题,眼泪哗哗的,网申开始。废话少说,这次实现的单链表类://list.h#ifndef _LIST_H_#define _LIST_H_#ifndef NULL#define NULL 0#endif//C++实现单链表templatestruct node{ T data; node *next; node(原创 2012-09-04 21:21:40 · 1166 阅读 · 2 评论 -
讲KMP算法的两篇博文
一个神奇的算法,今天想懂了一点点,先把前辈们的文章贴出来,留待以后钻研。http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.htmlhttp://www.matrix67.com/blog/archives/115/原创 2012-09-07 00:07:06 · 3487 阅读 · 0 评论 -
创新工场两道笔试题0919
【题目1】字符串去重,老题目,只是要求不能开辟新空间用来复制原字符串思路:使用布尔型的简单hash表可以节省空间,用来存储字符是否出现的信息,刚开始hash表里面都是false,当第一次字符出现的时候,置成true,再次碰见的时候直接删除这个字符就行了。char* remove_multiple_char(char* str){ assert(str != NULL); char原创 2012-09-20 22:13:23 · 5884 阅读 · 3 评论