2014年7月27日

IT公司100题-1-二叉树转换为双链表

摘要: 问题描述:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 /\ 614/\/ \4 8 12 16转换成双向链表4=6=8=10=12=14=16。首先我们定义的二元查找树 节点的数据结构如下:struct BSTreeNode{ ... 阅读全文

posted @ 2014-07-27 11:40 醉清风JM 阅读(208) 评论(0) 推荐(0)

2014年7月26日

数据结构-Hash表

摘要: 实现: 1 #ifndef SEPARATE_CHAINING_H 2 #define SEPARATE_CHAINING_H 3 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 ... 阅读全文

posted @ 2014-07-26 23:10 醉清风JM 阅读(274) 评论(0) 推荐(0)

数据结构-Stack和Queue

摘要: 实现: 1 #include "c2_list.h" 2 3 template 4 class Stack{ 5 public: 6 bool isEmpty() const 7 {return _list.empty();} 8 9 const object& top... 阅读全文

posted @ 2014-07-26 23:08 醉清风JM 阅读(221) 评论(0) 推荐(0)

2014年7月25日

【STL】-Map/Multimap的用法

摘要: 初始化:map salaries;算法:1. 赋值。salaries[ "Pat" ] = 75000.00;2. 无效的索引将自动添加一项 cout 2 #include 3 #include 4 using namespace std; 5 6 int main( ) 7 { 8 ... 阅读全文

posted @ 2014-07-25 08:20 醉清风JM 阅读(241) 评论(0) 推荐(0)

2014年7月24日

数据结构-AVL树的旋转

摘要: http://blog.csdn.net/GabrieL1026/article/details/6311339平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树,它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作在平均和最坏情况下时间复杂度都是O... 阅读全文

posted @ 2014-07-24 12:57 醉清风JM 阅读(1292) 评论(0) 推荐(0)

指针赋值的问题【转】

摘要: 转自:http://blog.csdn.net/snowq/archive/2008/01/17/2050129.aspx最近写了一个小程序,遇到一点小问题,是关于指向字符串的指针的。由此一发不可收拾,好奇心驱使我决定研究一下指针的初始化和赋值规则。略有所得之后,执笔记下,以备后用。1、指针的初始化... 阅读全文

posted @ 2014-07-24 10:06 醉清风JM 阅读(309) 评论(0) 推荐(0)

数据结构-AVL树

摘要: 实现: 1 #ifndef AVL_TREE_H 2 #define AVL_TREE_H 3 4 #include "dsexceptions.h" 5 #include // For NULL 6 using namespace std; 7 8 // AvlTree... 阅读全文

posted @ 2014-07-24 07:28 醉清风JM 阅读(203) 评论(0) 推荐(0)

数据结构-二叉搜索树

摘要: 实现: 1 #ifndef BINARY_SEARCH_TREE_H 2 #define BINARY_SEARCH_TREE_H 3 4 #include "dsexceptions.h" 5 #include // For NULL 6 using namespace st... 阅读全文

posted @ 2014-07-24 07:23 醉清风JM 阅读(221) 评论(0) 推荐(0)

2014年7月22日

【STL】-pair的用法

摘要: 初始化: std::pair p; //initialize p.first and p.second with zero std::pair p(42, "hello"); make_pair(42, "hello"); // no need for the var name, it's r... 阅读全文

posted @ 2014-07-22 08:54 醉清风JM 阅读(179) 评论(0) 推荐(0)

【STL】-auto_ptr的用法

摘要: 初始化:1 #include //auto_ptr header2 void f()3 {4 auto_ptr ptr(new classA);5 }拷贝:1 //auto_ptr can't be initialized by = operator2 auto_ptr ptr1(new cla... 阅读全文

posted @ 2014-07-22 08:53 醉清风JM 阅读(217) 评论(0) 推荐(0)

2014年7月19日

【STL】-function object

摘要: 1 // Generic findMax, with a function object, version #1 2 // Precondition, a.size() > 0 3 #include 4 #include 5 #include 6 using namespace std; ... 阅读全文

posted @ 2014-07-19 18:20 醉清风JM 阅读(258) 评论(0) 推荐(0)

面试题目-findmax的实现

摘要: 1 #include 2 #include 3 #include "printCollection.h" 4 5 using namespace std; 6 7 /** 8 * Return the maximum item in array a. 9 *Assume a.size(... 阅读全文

posted @ 2014-07-19 18:14 醉清风JM 阅读(398) 评论(0) 推荐(0)

c++-深拷贝

摘要: 1 //DeepCopy.cpp 2 #include 3 using namespace std; 4 5 template 6 class ObjectCell { 7 public: 8 explicit ObjectCell(object initValue ... 阅读全文

posted @ 2014-07-19 17:43 醉清风JM 阅读(197) 评论(0) 推荐(0)

2014年7月13日

Linux-grep

摘要: grep一般用法见:http://www.cnblogs.com/dracohan/archive/2013/03/04/2942810.html特殊用法如下:查找b中有,a中没有的行:grep -vxFf a b 阅读全文

posted @ 2014-07-13 11:09 醉清风JM 阅读(274) 评论(0) 推荐(0)

2014年7月11日

面试题目-如何计算某个时刻时指针和分指针的夹角

摘要: 发现此面试题目也经常粗线,木办法,记下来:某个时刻分指针的角度为360*minitues/60某个时刻时指针的角度为(360*hours/12+360/12/60*miniutes)%360故夹角为30*hours-5.5*minitues 阅读全文

posted @ 2014-07-11 15:17 醉清风JM 阅读(257) 评论(0) 推荐(0)

2014年7月7日

面试题目-atof与ftoa

摘要: /////////////////////////////////////////////////////////////////////////////////// FileName : atof_ftoa.cpp// Author : Jimmy Han// Dat... 阅读全文

posted @ 2014-07-07 12:52 醉清风JM 阅读(602) 评论(0) 推荐(0)

2014年7月6日

数据结构-List

摘要: Lis的实现://///////////////////////////////////////////////////////////////////////////////// FileName : c2_list.h// Author : Jimmy Han// ... 阅读全文

posted @ 2014-07-06 22:52 醉清风JM 阅读(192) 评论(0) 推荐(0)

2014年7月5日

数据结构-Vector

摘要: 自定义Vector实现://///////////////////////////////////////////////////////////////////////////////// FileName : c2_vector.h// Author : Jimmy ... 阅读全文

posted @ 2014-07-05 16:22 醉清风JM 阅读(289) 评论(0) 推荐(0)

面试题目-计算最大公约数

摘要: #include using namespace std;long gcd(long m, long n){ while(n != 0) { long rem = m%n; m = n; n = rem; } return m;}in... 阅读全文

posted @ 2014-07-05 15:41 醉清风JM 阅读(172) 评论(0) 推荐(0)

数据结构-二分查找

摘要: 1 #include 2 #include 3 #include 4 #include "example_vec.h" 5 #include "printCollection.h" 6 using namespace std; 7 8 extern vector example_vec; ... 阅读全文

posted @ 2014-07-05 15:39 醉清风JM 阅读(247) 评论(0) 推荐(0)

面试题目-用递归通过单字符输出打印多位的数字

摘要: #include using namespace std;void printDigit( int n ){ cout = 10 ) printOut( n / 10 ); printDigit( n % 10 );}int main( ){ printOut( 1... 阅读全文

posted @ 2014-07-05 15:31 醉清风JM 阅读(177) 评论(0) 推荐(0)

2014年7月3日

Linux-守护进程的实现

摘要: Some basic rules to coding a daemon prevent unwanted interactions from happening. We state these rules and then show a function,daemonize, that implem... 阅读全文

posted @ 2014-07-03 22:58 醉清风JM 阅读(261) 评论(0) 推荐(0)

面试题目-链表反转

摘要: 题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。链表结点定义如下:1 struct Node{2 object data;3 Node *prev;4 Node *next;5 Node(const objec... 阅读全文

posted @ 2014-07-03 22:57 醉清风JM 阅读(213) 评论(0) 推荐(0)

Linux-C程序的存储空间布局

摘要: 正文段 指的是由CPU执行的机器代码,通常,正文段是可以共享的,执行的程序在存储器中只有一个副本。通常也是只读的,防止程序本身被修改。初始化数据段 数据段,被明确赋值的变量,比如全局变量非初始化数据段 程序开始执行前,内核将此段中的数据初始化为0或者空指针,比如出现在函数外的C声明。栈 自动... 阅读全文

posted @ 2014-07-03 22:08 醉清风JM 阅读(248) 评论(0) 推荐(0)

2014年7月1日

Linux-如何添加路由表

摘要: linux下静态路由修改命令方法一:添加路由route add -net 192.168.0.0/24 gw 192.168.0.1route add -host 192.168.1.1 dev 192.168.0.1删除路由route del -net 192.168.0.0/24 gw 192.... 阅读全文

posted @ 2014-07-01 08:22 醉清风JM 阅读(5697) 评论(0) 推荐(0)

2014年6月29日

C++-new操作符

摘要: 1,new操作符实际上包含三部分:operator new分配内存和调用构造函数初始化刚刚分配的内存,类型转换刚刚的指针。string* ps = new string("lalalala");相当于void* memory = operator new(sizeof(string));call s... 阅读全文

posted @ 2014-06-29 11:16 醉清风JM 阅读(611) 评论(0) 推荐(0)

C++-前缀和后缀

摘要: 1,c++规定后缀形式的++操作符有一个int行的参数,被调用时,编译器自动加一个0作为参数给他2,前缀返回一个reference,后缀返回一个const对象///////////////////////////////////////////////////////////////////////... 阅读全文

posted @ 2014-06-29 10:52 醉清风JM 阅读(2719) 评论(0) 推荐(0)

C++-指针和引用的区别

摘要: 1,不存在空引用,指针可以为空2,引用更高效,使用前不需要测试是否为空3,指针可以被赋给别的对象,引用则不可以更改总之,在对象有可能什么也不指向或者指向不同的对象的时候应该使用指针。 阅读全文

posted @ 2014-06-29 10:11 醉清风JM 阅读(137) 评论(0) 推荐(0)

2014年6月28日

C++-多重继承的注意点

摘要: 1, 钻石型多重继承如果不想要底部的类有重复的变量,则需要声明为virtual继承 class File{...}; class InputFile: virtual public File{..}; class OutputFile: virtual public File{....}; ... 阅读全文

posted @ 2014-06-28 19:09 醉清风JM 阅读(594) 评论(0) 推荐(0)

C++-继承名称的掩盖

摘要: /////////////////////////////////////////////////////////////////////////////////// FileName : effect_item33.h// Version : 0.10// Author... 阅读全文

posted @ 2014-06-28 18:13 醉清风JM 阅读(172) 评论(0) 推荐(0)

C++-dynamic_cast的用处

摘要: 主要用来在没有实现文件,只有头文件的情况下,添加派生类的功能,如下例给programmer加奖金。注意:dynamic_cast不能用于没有virtual函数的类/////////////////////////////////////////////////////////////////////... 阅读全文

posted @ 2014-06-28 15:16 醉清风JM 阅读(516) 评论(0) 推荐(0)

C++-const_cast, reinterpret_cast, static_cast的用法

摘要: /////////////////////////////////////////////////////////////////////////////////// FileName : cast_item27.cpp// Version : 0.10// Author... 阅读全文

posted @ 2014-06-28 15:12 醉清风JM 阅读(254) 评论(0) 推荐(0)

C++-高效的swap

摘要: 原始版本:templatevoid swap(T& a, T& b){ T tmp(a); a = b; b = tmp;}此版本不重视效率,当交换的两个对象比较大时,需要更高效的交换,因此应该提供1)public swap成员函数,让它高效的置换两个对象,并提供nono-memb... 阅读全文

posted @ 2014-06-28 15:01 醉清风JM 阅读(581) 评论(0) 推荐(0)

C-crash的方法

摘要: #include using namespace std;int main(){#if 0 //devide by 0 int i = 1; int j = 0; double d = i/j;#endif #if 1 //allocate large memor... 阅读全文

posted @ 2014-06-28 11:08 醉清风JM 阅读(286) 评论(0) 推荐(0)

C++-bool的值

摘要: /////////////////////////////////////////////////////////////////////////////////// FileName : bool_value.cc// Version : 0.10 created ... 阅读全文

posted @ 2014-06-28 11:06 醉清风JM 阅读(364) 评论(0) 推荐(0)

C++-Effective C++ Items

摘要: Item2:尽量以const,enum,inline替换#define原因:1, #define ASPECT_RATIO 1.63 编译错误时产生魔数,应以const double Aspect_Ratio = 1.63替换 2, #define不能提供作用域,如某个类的常量 ... 阅读全文

posted @ 2014-06-28 09:20 醉清风JM 阅读(561) 评论(0) 推荐(0)

2014年6月27日

C++-static的用法

摘要: static成员变量 为什么要有静态成员变量:1)不进入全局名字空间。2)实现信息隐藏 要点: 除了整型的const 静态成员变量可以在类体内初始化,其它值都需要在类体外的实现文件定义static函数 为什么要有静态成员变量:主要是用来访问/修改静态成员变量 要点:1)静态成员函数在类内的声... 阅读全文

posted @ 2014-06-27 14:01 醉清风JM 阅读(182) 评论(0) 推荐(0)

2014年6月26日

设计模式-单例模式

摘要: 1 /////////////////////////////////////////////////////////////////////////////// 2 // 3 // FileName : singleton.h 4 // Version : 0.10 5... 阅读全文

posted @ 2014-06-26 21:02 醉清风JM 阅读(157) 评论(0) 推荐(0)

C-指针和数组的区别

摘要: 指针的操作: 允许:1)同类型指针的赋值 2)与整形的加减运算 3)指向同一数组内指针的减运算和比较 4)赋 ‘0’ 或与 ‘0’ 比较 不允许:1)两指针的相加,相乘除,位移或mask 2)与float,double类型相加 3)不通过类型转换,直接赋予除... 阅读全文

posted @ 2014-06-26 13:21 醉清风JM 阅读(318) 评论(0) 推荐(0)

2014年6月25日

C++-标准输入输出

摘要: 1,cout 1) 用来向标准输出打印。 2)如果参数是char*类型,则直接输出字符串。如果想要输出地址,则需要强制转换: (const_cast(pstr));2,cin 1) 将标准输入读入变量,如果输入与变量声明类型不一致,则cin为false,可以用if判断,变量值不确定。 do... 阅读全文

posted @ 2014-06-25 17:38 醉清风JM 阅读(286) 评论(0) 推荐(0)

导航