自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Steve Sun的专栏

撸呀么撸代码~

  • 博客(38)
  • 资源 (8)
  • 收藏
  • 关注

转载 轻松搞定面试中的二叉树题目

版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7518888树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树

2015-07-29 00:54:42 505

原创 c++题目整理

题1: 题2: 题3:以下程序的输出是class Base { public: Base(int j): i(j) {} virtual~Base() {} void func1() { i *= 10; func2(); } int getVa

2015-07-18 18:29:01 3003

转载 linux下进程间通信的几种主要方式简介

linux下进程间通信的几种主要手段简介:管道(Pipe)及有名管道( mkpipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix

2015-07-05 21:35:05 1343

转载 解决哈希(HASH)冲突的主要方法

虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、开放定址法     用开放定址法解决冲突的做法是:当冲突发生时,

2015-07-31 23:37:17 49051 2

原创 求二叉树中和为某一值的路径

struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};void FindPath(BinaryTreeNode *pRoot, int expectedSum, vector &path, int ¤tSum){ if(!pRoot) return; cu

2015-07-30 22:31:05 542

原创 判断二叉树是否是平衡树

解法1:int TreeDepth(BinaryTreeNode* pRoot){ if(pRoot == NULL) return 0; int nLeft = TreeDepth(pRoot->m_pLeft); int nRight = TreeDepth(pRoot->m_pRight); return (nLeft > nRigh

2015-07-28 22:59:58 359

原创 汉诺塔问题

H(1) = 1H(n) = 2 * H(n - 1) + 1f = 2^n + 1代码:#includevoid hanoi(int n,char A,char B,char C){ if(n==1) { printf("Move disk %d from %c to %c\n",n,A,C); } else { hanoi(n-1,A,C,B); pr

2015-07-28 01:47:20 361

转载 数据库隔离级别详解

事务(transaction)是数据库管理系统的执行单位,可以是一个数据库操作(如Select操作)或者是一组操作序列。事务ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。原子性:保证事务中的所有操作全部执行或全部不执行。例如执行转账事务,要么转账成功,要么失败。成功,则金额从转出帐户转入到目的帐

2015-07-27 19:44:55 6340

原创 求二叉树中节点的最大距离

编程之美中的题目,但是书上的代码递归太复杂,整理了个优化的解法:思路: 可以转换为求二叉树中任意一个节点左右子树的高度和struct Node{ Node *pLeft; Node *pRight;};int maxLen = 0;int treeDepth(Node *pRoot, &maxLen){ if(pRoot == NULL) return -1; in

2015-07-26 20:15:15 412

转载 不能在析构函数里面抛出异常

从语法上面讲,析构函数抛出异常是可以的,C++并没有禁止析构函数引发异常,但是C++不推荐这一做法,从析构函数中抛出异常是及其危险的。析构函数可能在对象正常结束生命周期时调用,也可能在有异常发生时从函数堆栈清理时调用。前一种情况抛出异常不会有无法预料的结果,可以正常捕获;但后一种情况下,因为函数发生了异常而导致函数的局部变量的析构函数被调用,析构函数又抛出异常,本来局部对象抛出的异常应该是

2015-07-25 17:16:59 758

转载 网络编程socket基本API详解

socket  socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。  socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"打开—读/写—关闭"模式的实现,服务器和客户端各自维护一个"文件",在建立连接打开后,可以向自己文件写入内容供对方读取或者读取对方内容,通讯结

2015-07-23 00:20:26 962

转载 二叉树题目集

题目:输入两棵二叉树A和B,判断树B是不是A的子结构bool IsChildTree(Node * father, Node * son){ if(father == NULL && son == NULL) return true; if(father == NULL && son != NULL) return false;

2015-07-23 00:18:20 401

转载 动态规划题集

1、最长公共子序列、最长公共子串最长公共子序列(Longest-Common-Subsequence,LCS)dp[i][j]:dp[i][j]表示长度分别为i和j的序列X和序列Y构成的LCS的长度dp[i][j] = 0,如果i=0 或 j=0 dp[i][j] = dp[i-1][j-1] + 1,如果 X[i-1] = Y[i-1] dp[i][j] = max{

2015-07-23 00:15:42 1072

原创 各种树的题目

1.判断二叉树是否平衡解法1:int treeDepth(Node *root){ if(root == NULL) return 0; int ld = treeDepth(root->left); int rd = treeDepth(root->right); return ld > rd ? ld + 1 : rd + 1;}bool isBalanced

2015-07-22 22:10:33 495

转载 STL算法之unique和unique_copy

一.unique函数类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。 1 // sort words alphabetically so we can find the duplicates 2 sort(

2015-07-22 00:27:44 410

原创 leetcode

3Sum Total Accepted: 64333 Total Submissions: 380677My SubmissionsQuestion Solution Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Fin

2015-07-22 00:10:15 415

转载 C/C++位域知识小结

几篇较全面的位域相关的文章:http://www.uplook.cn/blog/9/93362/C/C++位域(Bit-fields)之我见C中的位域与大小端问题内存对齐全攻略–涉及位域的内存对齐原则本文主要对位域相关知识进行了一下梳理,参考如下:C语言中的位域史上最全的C位域总结2C结构体之位域(位段) C/C++中

2015-07-19 15:47:16 405

转载 面向对象三大特性,五大原则

以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象,其实真正的面向对象设计是要符合下面的五大原则,面向对象的五大基本原则单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接

2015-07-18 22:28:28 11309 1

转载 教你如何迅速秒杀掉:99%的海量数据处理面试题

教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言   一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的

2015-07-14 00:56:10 1450

转载 十道海量数据处理面试题与十个方法大总结

海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.net/v_JULY_v。 第一部分、十道海量数据处理面试题1、海量日志数据

2015-07-14 00:55:15 761

转载 为什么构造函数不能声明为虚函数,析构函数可以

构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。

2015-07-13 23:55:43 347

转载 msl、ttl及rtt的区别—— TCP控制字段标志

一、  msl、ttl及rtt的区别   1、 MSL 是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文 (segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文;   2、ip头中有一个TTL域,TTL是

2015-07-11 00:03:49 944

转载 堆和栈的区别以及生长方向

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。C++内存区域分为5个区域。分别是堆,栈,自由存储区,全局/静态存储区和常量存储区。栈:由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面通常是局部变量,函数参数等。堆:由n

2015-07-08 23:35:31 1858

转载 C++面试题by hht

转自:http://t.163.com/zhedahht题目(一):我们可以用static修饰一个类的成员函数,也可以用const修饰类的成员函数(写在函数的最后表示不能修改成员变量,不是指写在前面表示返回值为常量)。请问:能不能同时用static和const修饰类的成员函数?分析:答案是不可以。C++编译器在实现const的成员函数的时候为了确保该函数不能修改类的实例的状态,会在

2015-07-08 00:59:46 618

转载 [C++]字节对齐与结构体大小

说明:结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,对sizeof我们将在另一篇文章中总结,这篇文章我们只总结结构体的sizeof,报着不到黄河心不死的决心,终于完成了总结,也算是小有收获,拿出来于大家分享,如果有什么错误或者没有理解透的地方还望能得到提点,也不

2015-07-08 00:50:26 534

转载 C++虚函数表解析

C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel  前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R

2015-07-07 00:37:37 344

转载 快速幂取模

快速幂取模算法在网站上一直没有找到有关于快速幂算法的一个详细的描述和解释,这里,我给出快速幂算法的完整解释,用的是C语言,不同语言的读者只好换个位啦,毕竟读C的人较多~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部

2015-07-06 22:39:59 338

转载 设计模式

23种设计模式目录创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9.

2015-07-06 21:55:16 1017

转载 设计模式大全

转自: http://blog.csdn.net/longronglin/article/details/1454315Longronglin之设计模式:Christopher Alexander 说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。模式描述为:在一定环境中解决某一问

2015-07-06 19:36:59 586

转载 volatile的使用

volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i; 

2015-07-06 00:31:15 407

转载 关于C++的子类指针指向父类

1,直接用基类指针引用基类对象2,直接用派生类指针引用派生类对象3,用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的,但是只能引用基类成员。若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。(解决该问题的答案是虚函数和多态性)4,用派生类指针引用基类的对象。这种引用方式会导致语法错误。派生类指针必须先强制转换为基类指针,这种方法

2015-07-05 21:09:29 10117

转载 数据库事务的使用

事务的概念与特性:      事务(Transaction)是并发控制的基本单位。指作为单个逻辑工作单元执行的一系列操作,而这些逻辑工作单元需要具有原子性,一致性,隔离性和持久性四个属性,统称为ACID特性。最经典的银行转账问题:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行,如果中间出现差错为了保持数据一致性就需要回滚操作。      事务具有以下4个基本特征(俗称

2015-07-05 19:40:05 546

转载 数据库事务的概念及ACID

数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久

2015-07-05 19:17:53 471

转载 虚拟内存VS物理内存

物理内存,在应用中,自然是顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。而在CPU中的概念,物理内存就是CPU的地址线可以直接进行寻址的内存空间大小。比如8086只有20根地址线,那么它的寻址空间就是1MB,我们就说8086能支持1MB的物理内存,及时我们安装了128M的内存条在板子上,我们也只能说8086拥有1MB的物理内存空间。同理我们现在大部分使用的是32位的机子,32位的386

2015-07-04 14:15:59 855

原创 最长公共子串问题

求两个字符串的最长公共子串:比如输入两个字符串BDCABA和ABCBDAB,它们的最长公共子字符串有BD和AB,长度都是2。解法1:动态规划#include #include using namespace std;int longestCommonSubstring(string s1, string s2){ int len1 = s1.size(); int len2 =

2015-07-03 23:29:18 333

转载 最长公共子字符串

子字符串的定义和子序列的定义类似,但要求是连续分布在其他字符串中。比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2。      最长公共子字符串共有两种解决方法,下面具体说说我的思路方法一:     Longest Common Substring和Longest Common Subsequence是有区别的     X

2015-07-03 00:13:05 582

原创 atoi代码实现

#include #include long long StrToIntCore(const char* str, bool minus);enum Status {kValid = 0, kInvalid};int g_nStatus = kValid;int StrToInt(const char* str){ g_nStatus = kInvalid; lo

2015-07-01 23:27:44 291

转载 程序员如何快速准备面试中的算法

前言    我决定写篇短文,即为此文。之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作了,如何备战算法。尽管在微博上简单梳理过,如下图所示:       但因字数限制,许多问题无法一次性说清楚,故特撰此文着重阐述下:程序员如何快速准备面试中的算法,继而推荐一些相关的书籍或资料。顺便也供节后跳槽、3月春季招聘小高潮、及6月毕业找工作的朋友参考。备战

2015-07-01 21:44:47 3301

leetcode C++题解

leetcode 最新C++题解

2015-07-22

C和linux书籍

C和linux书籍

2015-06-11

购票软件源代码2

购票软件源代码2

2013-12-18

购票软件源代码1

购票软件源代码1

2013-12-18

计算机统考真题解析

计算机统考真题解析

2013-11-24

C++实现多线程通信

C++实现多线程通信

2013-11-17

火车票抢票软件

火车票抢票软件

2013-11-14

MFC编写的淘宝抢拍软件

MFC编写的淘宝抢拍软件,用于自动抢拍秒杀淘宝商品。直接多任务多线程,付上了使用文档和软件运行日志

2013-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除