- 博客(77)
- 资源 (3)
- 收藏
- 关注

原创 C++中的回调函数——指向类成员的指针
C++中的回调函数 ——指向类成员的指针在C中我们能够很容易地实现一个指向函数的指针,因此能够方便地实现函数的回调机制。但是在C++中很多人认为类的成员函数不能作为回调函数,因此很多C程序不能移植到C++上来。其实不是这样的,在C++中我们同样可以获取类的成员函数的指针,也能方便地实现函数回调机制。下面先数一下C/C++中普通函数作为回调函数的情况,然后再说C++ 中类成员函
2014-03-12 14:44:50
7937
3

原创 大整数加减乘除及取模运算 C++实现
最近事情实在是太多了,一直没有时间写博客,昨天刚刚忙完硕士开题,虽然还是有很多的事情要做,但实在是不想弄了。想起一个月之前就已经写完的一个大整数加减乘除法的程序,今天把它贴出来和大家分享,目前我只是做了简单的测试,可能程序中还存在不好的bug,也希望大家能一块帮着指出其中的错误!!希望和大家一块学习共勉 .....首先是实现大整数的头文件:BitInt.h#ifndef DO
2013-12-10 21:21:09
13192
4

原创 用邻接链表数据结构存储图 并实现Dijkstra算法
对于还不明白Dijkstra算法的可以到网上随便搜一下,有大量的资料,同时也可以参看我的另一篇博客:http://blog.youkuaiyun.com/doufei_ccst/article/details/7841311,在这篇博客中是以邻接矩阵来实现Dijkstra算法的。用邻接链表数据结构存储的图的Dijstra算法的实现代码可以参看我的代码分享:https://github.com/craz
2013-10-17 23:51:33
6036

原创 网易有道笔试题(2014届,2013.10北邮站)
从网上看到网易有道2014届校园招聘的笔试题目,简单的做了一下编程和算法部分,都是一些平常遇到的题目,留一个笔记。总共有两道编程题目,要求写出可以运行的C/C++代码或者Java代码,第一个编程题如下:(不是太清楚,但勉强能看)对于这道题,应该是考察对于字符串的处理能力,应该是比较基础的题目。从题目的描述我们可以将要转换的字符串组合分成两大类1,普通的字符串,不进行
2013-10-16 14:45:01
6521
2

原创 判断链表中是否有环 ----- 有关单链表中环的问题
首先,关于单链表中的环,一般涉及到一下问题:1.给一个单链表,判断其中是否有环的存在;2.如果存在环,找出环的入口点;3.如果存在环,求出环上节点的个数;4.如果存在环,求出链表的长度;5.如果存在环,求出环上距离任意一个节点最远的点(对面节点);6.(扩展)如何判断两个无环链表是否相交;7.(扩展)如果相交,求出第一个相交的节点;
2013-08-30 14:46:06
7769
1

原创 贪心算法实现霍夫曼编解码
版权所有,转载请注明出处!霍夫曼编码是一种被广泛应用而且非常有效的数据压缩技术,根据待压缩数据的特征,一个可压缩掉20%~90%。这里考虑的数据指的是字符串序列。要理解霍夫曼编码,先要理解霍夫曼树,即最优二叉树,是一类带权路径长度最短的树。路径是指从树中一个结点到另一个结点之间的通路,路径上的分支数目称为路径长度。树的路径长度是从树根到每一个叶子之间的路径长度之和。结点的带权路
2012-08-12 14:00:20
2905

原创 动态规划解决0-1背包问题
版权所有,转载请注明出处!动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。/* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总价值。输入格式:M,NW1,P
2012-08-11 21:21:15
804

原创 Dijkstra算法的C++实现
版权所有,转载请注明出处!本文使用邻接矩阵存储图,使用邻接链表存储图的相应的算可以参考用邻接链表数据结构存储图 并实现Dijkstra算法。里面附有具体的实现代码。对于该算法的实现思想网上已经有很多,所以这里只是简单介绍原理,重点在于实现代码。Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如
2012-08-07 23:15:16
22442
原创 Linked List Cycle
链表中是否存在环Linked List Cycle II Total Accepted: 10308 Total Submissions: 33751My SubmissionsGiven a linked list, return the node where the cycle begins. If there is no cycle, re
2014-04-10 17:18:56
691
原创 二叉树遍历之非递归实现
二叉树遍历之非递归实现 二叉树遍历算法的重要性大家都知道,是很多算法的基础,它的递归实现非常简单,相信学过数据结构的同学都应该能够轻松写出来。如果需要写出二叉树的前序遍历、中序遍历以及后续遍历的非递归实现,可能还是需要费点时间。下面给出我的实现方式。前序遍历: 二叉树的前序非递归实现可以按照这样的思路:毫无疑问,我们需要一个栈来作为辅助空间,首先将根节点入
2014-04-07 17:00:05
1177
原创 LRU Cache 实现
LRU Cashe实现LeetCode上有着样一道题目:Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.get(key) - Get the value (wil
2014-04-07 11:58:54
9967
原创 单链表排序(快速排序、归并排序)
本题目来源于LeetCode,具体如下:Sort a linked list in O(n log n) time using constant space complexity.题目要求复杂度O(nlogn),因此我们很自然考虑使用快速排序或者归并排序,但是后来经过实践证明,使用快速排序总是AC超时,归并排序则可以正确AC。分析一下原因,个人认为是与测试数据有关,因为快速排序不能
2014-03-26 22:53:47
18712
3
原创 最多共线点的数目
本题目来自LeetCode,具体内容如下:Max Points on a Line Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.题目叙述很简单,就是给定2D平面上的N个点,从这些点中
2014-03-26 15:13:39
5638
原创 逆波兰式计算
本题目来源于LeetCode,计算逆波兰式的值,具体如下:Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Polish Notation.Valid operators are +, -, *, /. Each o
2014-03-26 11:18:39
1376
原创 翻转字符串中的单词
本题目来自LeetCode,具体如下:Given an input string, reverse the string word by word.For example,Given s = "the sky is blue",return "blue is sky the".click to show clarification.Clarification
2014-03-26 10:06:08
1075
原创 随机读取文件中一行数据
随机读取文件中一行数据问题描述:对于一个事先不知道有多少行的文件,设计一种算法,能够快速地随机读取文件中的一行数据。思路1:先统计文件又多少行数据,假设共有N行。然后根据k = rand()%N得到选择的行,再从文件头开始,逐行读取,一直到第k行,作为随机读取的一行数据。这种思路简单直白,但是效率不高。思路2:只读取一遍文件,就能以相同的概率选出文件中的一行数据。具体做法是使用一个变量
2014-01-05 17:13:52
3997
原创 POJ 2965
The Pilots Brothers' refrigeratorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 16008 Accepted: 6035 Special JudgeDescriptionThe game “The Pilo
2013-09-28 22:03:12
677
原创 POJ 1753
Flip GameTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 26203 Accepted: 11308DescriptionFlip game is played on a rectangular 4x4 field with two-sided
2013-09-28 17:07:37
708
原创 杭电1061
Rightmost DigitTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26061 Accepted Submission(s): 10018Problem DescriptionGiven a
2013-09-28 11:38:08
1149
原创 杭电1058
Humble NumbersTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13689 Accepted Submission(s): 5956Problem DescriptionA number w
2013-09-27 21:42:20
670
原创 杭电1048
The Hardest Problem EverTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13447 Accepted Submission(s): 6123Problem Description
2013-09-27 14:53:40
870
原创 杭电1040
As Easy As A+BTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30295 Accepted Submission(s): 12993Problem DescriptionThese day
2013-09-27 13:08:26
1081
原创 杭电1032
The 3n + 1 problemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18197 Accepted Submission(s): 6721Problem DescriptionProble
2013-09-26 22:56:48
1056
原创 杭电1108
最小公倍数Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27414 Accepted Submission(s): 15184Problem Description给定两个正整数,计算这两个数的最小公
2013-09-25 23:40:05
928
原创 杭电1106
排序Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 28373 Accepted Submission(s): 7854Problem Description输入一行数字,如果我们把这行数字中的‘5’都
2013-09-25 23:04:31
847
原创 Github使用学习
网上发现一些很好的学习资料,这里做一下笔记:http://www.cnblogs.com/findingsea/archive/2012/08/27/2654549.htmlhttp://www.wxx3g.com/articles/871.htmlhttps://github.com/andycai/flash-game-development/blob/master/14.
2013-09-02 13:17:38
649
转载 do ... while(0)的好处
转载自:http://www.cppblog.com/xyjzsh/archive/2010/11/24/134516.html个人觉得写得很好,转载作为备忘,同时也分享给大家!在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时,我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项
2013-08-26 09:19:44
621
原创 字符串匹配算法KMP
KMP算法的原理,这里我不写,建议参考:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html这篇博客写的非常好,以本人的能力只能写出更烂的解释 .....所以就不再多此一举了,下面仅仅给出两端代码,分别用C++和Python写的(都已经编译通过),希望能对大家有所帮助
2013-07-03 15:22:44
721
原创 从string中解析出单词
写了两个函数,分别借助不同的函数实现,代码的逻辑很简单:#include #include #include //strtok#include#include using namespace std;//实现将一个字符串按照分隔符划分成单词/**思路:*每一个单词的开头也就是第一个非空格的位置,用start = find_first_not_of(' ', end)来得
2013-06-27 09:11:18
1248
原创 删除字符串前后的空格
下面是本人写的一个小函数,用来删除string中前面和后面的空格,逻辑很简单,不做多的解释 ....#include #include using namespace std;string& removeSpace(string& srcStr){ srcStr.erase(srcStr.begin(), srcStr.begin() + srcStr.find_first_
2013-06-25 16:54:55
1120
原创 Python中定义“私有”成员变量和成员函数
参考连接:http://docs.python.org/2/tutorial/classes.html http://www.pythonclub.org/python-class/private http://blog.youkuaiyun.com/mafuli007/article/details/7777641在学习Python的过程中发下,它把类(class)中所有的成员函数和
2013-06-22 19:29:34
26373
转载 红黑树——经典
原文:http://www.cppblog.com/goodwin/archive/2011/08/08/152797.html理解红黑树树型结构一直是一种很重要的数据结构, 我们知道二叉查找树BST提供了一种快速查找, 插入的数据结构. 相比散列表来说BST占用空间更小,对于数据量较大和空间要求较高的场合, BST就显得大有用处了.BST的大部分操作平均运行时间为O(logN),
2013-03-31 20:52:31
803
原创 【C++】#define vs const 、enum & inline
参考书籍:《Effective C++ 》《C++ Primer》《C++ 编程思想》上下册算来已经好久没有写博客了,周末抽点时间记录下最近学习的一个小问题吧。一直在使用C++写个小实验,以前没有写过特别大的工程,也很少会考虑到使用和不使用#define这个宏的好处和有点,最多也就是知道它是在预处理时期“盲目替换”代码的,因此不会牵涉到函数调用也就更不会有函数调用带
2013-03-31 17:27:35
916
转载 向量的点乘和叉乘
向量(Vector)在几乎所有的几何问题中,向量(有时也称矢量)是一个基本点。向量的定义包含方向和一个数(长度)。在二维空间中,一个向量可以用一对x和y来表示。例如由点(1,3)到(5,1的向量可以用(4,-2)来表示。这里大家要特别注意,我这样说并不代表向量定义了起点和终点。向量仅仅定义方向和长度。向量加法向量也支持各种数学运算。最简单的就是加法。我们可以对两个向量相加,得到的仍
2013-03-07 16:56:45
954
转载 stringstream
使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int
2012-12-26 20:15:41
451
转载 大数四则运算
// 大数的四则运算及求模。数字无位数限制,除法的商支持小数。#include #include #include using namespace std; class BIGINTEGEROPERATIONS{private: static int COMPARE(string number1, string number2)
2012-08-19 19:03:23
488
原创 杭电1180
诡异的楼梯Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 5111 Accepted Submission(s): 1170Problem DescriptionHogwarts正式开学以后,Harr
2012-08-18 19:03:56
621
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人