- 博客(45)
- 资源 (3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 线索树(下)
补上一篇基于上面的3个基本操作,下面是两种方式的遍历树1,普通的非递归遍历二叉树(补充)2,线索化的树上3种遍历方式非递归遍历:a,中序遍历 思路: 只要一直把树中最左的节点作为第一个节点输出即可,因此需要把搜索最左节点路径上的根节点存储起来,存储结构用栈(用于回溯) 一个临时节点temp(初始值为根节点),如果temp"非NULL"且存在左节点(非左线索), 则把
2012-12-04 15:10:45
635
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 线索树(上)
补上很久前在线写后浏览器崩溃一篇文章,重写了一次线索树: 二叉树中利用NULL链域的一种变形二叉树中度数为0或1的节点有2个或1个的链域,其值为NULL,这些链域都浪费了,所以对这些链域加以利用,使得二叉树的某些操作效率更佳.ps: 如果以计算一棵二叉树的所有链域 (n0 n1 n2 三种节点,度数分别为0,1,2) 度数: 子节点的个数, 则树的总链域数 为 2*(n2+n1+n0),而
2012-12-04 14:26:52
844
转载 关联、组合、聚合、依赖关系比较
原文链接: http://blog.csdn.net/maybehelios/article/details/2038685类之间的关系1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。2. 其中Aggregation(聚合关系)、Compo
2012-12-17 20:55:28
439
原创 fedora 64位 wine 安装恶心插曲
系统: fedora 64 位安装了wine: ps: yum install wine* 一直安装不成功,后来是下载了 wine 1.5 包才安装成功的然后如网上说的安装了winetricks 。。。。但是一运行 winetricks 出现: WINE is wine , which is not on an excutable ( 整个句子不是很记得了) 的错误纠结了
2012-12-05 10:01:58
1239
转载 fedora 17
原文链接:http://www.cnblogs.com/york-hust/archive/2012/07/08/2581178.html一、了解Fedora 17先来了解一下Fedora吧。它是由Red Hat赞助的一个全球性开源项目,秉承“自由”、“友爱”、“杰出”、“前卫”宗旨。1、Fedora 17的主要系统改进内核:采用3.3.4内核。安全:Fedora现在具备单
2012-12-04 20:11:10
1065
转载 很不错的文章
程序员的职业发展程序员这个职业到底是不是吃青春饭,这个问题可能一直是每个初入职场的程序员心头挥之不去的阴影。最近看到一篇关于程序员生涯规划的奇文,也许能解答这个问题。在IT行业由超常趋向平常的阶段,社会关注热点转移,程序员的社会平均薪资水平由高向低回落,引起了许多人对程序员前程的思考。按专家或行业资深人士的说法,程序员有两条进阶路线。一条是技术路线,由程
2012-10-27 23:25:55
830
转载 判断链表中环的存在
1、如何判断一个链表是不是这类链表? 2、如果链表为存在环,如果找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:boo
2012-10-25 08:57:02
809
原创 m_sort 归并排序(迭代)
#include #include #include using namespace std;typedef int element;void merge(element *list,element *sorted,int i,int m,int n){int j=m+1,k=i;while(iif(list[i] sorted[k++]=l
2012-10-16 08:17:04
1631
原创 k_over 重叠字符串
#include #include #include #include using namespace std;#define maxn 1024#define maxm 1024int bufa[maxn],bufb[maxn],bufs[maxm],bufv[maxn];int sa[maxn],height[maxn],rank[maxn];
2012-10-16 08:16:28
1123
原创 aba 回文练习 -- 参考罗大神的
#include #include #include #include using namespace std;#define maxn 1024#define parr(arr,n) printf(#arr":");for(int kk=0;kkint bufa[maxn],bufb[maxn],bufs[maxn],bufv[maxn];int sa[m
2012-10-16 08:15:30
6640
原创 kmp 练习下
/* * ===================================================================================== * * Filename: kmp.cpp * * Description: * * Version: 1.0 * Created: 10/14/
2012-10-16 08:14:00
2199
转载 某个博客看到的,很鼓励,转了~~~
年轻的我们必须懂得:1、你不勇敢,没人替你坚强。2、没有伞的孩子必须努力奔跑!3、自己选择的路、跪着也要把它走完。4、不要生气要争气,不要看破要突破,不要嫉妒要欣赏,不要拖延要积极,不要心动要行动5、宁愿跑起来被拌倒无数次,也不愿规规矩矩走一辈子。就算跌倒也要站起来。
2012-10-04 11:19:24
513
原创 小试大数据处理
这些思路网上都有,就是自己实践一下。ps:昨晚写了40多分钟的东西,本来想发的,后来崩溃了...> . /* * ===================================================================================== * * Filename: find_the_same.c * * Descri
2012-09-16 18:45:55
541
转载 vim 窗口
原文:http://www.followstars.cn/article.asp?id=66 同时显示两个不同的文件,或者同时查看一个文件的两个不同的部分,甚至同步显示两个文件的不同之处,都可以使用vim的分割窗口来实现。 最简单的打开新窗口的方法就是使用命令:split,这样,原来的窗口就会分成上下两个部分,而光标停留在上明的窗口里。你会发现打开的新窗
2012-09-16 00:46:08
624
转载 写模板类的时候,目录突然出现了.gch文件~~~学习学习
转自: http://blog.csdn.net/Lethe1989/article/details/5276918——谨以此文,悼念我等待MinGW编译时逝去的那些时间。其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA。后来一直用到C++ Builder,尽管Borland的广告无时无刻不在吹嘘其编译速度,我却从没有对这个问题上心过,因
2012-09-08 17:41:02
801
原创 C++ new 和 delete 的重载
发现:类里面有几种成员函数是没有this指针的,也就是访问不了类的成员 构造函数:有; 说明其实对象真正的初始化就是在初始化类表 析构函数:有; 析构函数在最后的时刻才把对象空间释放 普通函数:有 static函数: 没有,但能访问静态成员 重载的 new new[]成员函数: 没有, 因为对象的产生是先有空间在调用构造函数,new就是完成前个步骤的工作 重载的 delet
2012-08-30 23:30:30
606
原创 循环链表
/* * ===================================================================================== * * Filename: d_list.h * * Description: 看了循环链表,写个代码练习练习 * 循环链表 * 优点:
2012-08-26 16:50:46
483
转载 从B 树、B+ 树、B* 树谈到R 树 --- 先转了 正复习着ds 呢
作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.csdn.net/v_JULY_v 。 第一节、B树、B+树、B*树1.前言:动态查找树主要有:二叉查找树
2012-08-26 15:46:42
1901
转载 vim 正则搜索替换
在插入模式下,为了减少重复的击键输入,VIM 提供了若干快捷键,当你要输入某个上下文曾经输入过的字符串时,你只要输入开头若干字符,使用快捷键,VIM 将搜索上下文,找到匹配字符串,把剩下的字符补全,你就不必敲了。这样,编程序时你起多长的变量名都没关系了,:-) 而且还可以减少输入错误。我认为,插入补全是 VIM 最为突出的一项功能。i 向上搜索,补全一个词。例如,上文中出现过 file
2012-08-26 00:40:34
462
原创 再学智能指针
/* * ===================================================================================== * * Filename: smart_pointer.cpp * * Description: 智能指针学习 * * * Version: 1.0 *
2012-08-25 23:11:21
390
转载 C++中智能指针的设计和使用
智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函
2012-08-24 23:34:54
503
原创 十六章 札记--C++ primer 之旅
模板定义:1、函数模板: 模板定义以关键字 template 开始,后接尖括号括起的模板形参表。 inline 函数模板, inline 说明符放在模板形参表后面,返回类型之前。 2、定义类模板: 必须以关键字template开头, 后接模板形参类型表。
2012-07-25 00:21:00
559
原创 初次邂逅句柄类 --C++ primer
句柄类存储和管理基类指针。指针所指对象的类型可以变化,既能指向基类类型对象又可以指向派生类类型对象。用户通过句柄类访问继承层次的操作 (virtual 函数)设计考虑因素: 1)对任何保存指针的类一样,必须确定对复制控制的具体操作。包装了继承层次的句柄应该表现得像一个智能指针或者像一个值 2)句柄类决定句柄接口屏蔽还是不屏蔽继承层次。 如
2012-07-23 00:12:27
1719
1
原创 十五章 札记--C++ primer 之旅
C++动态绑定的实现 在C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这是动态绑定的关键。 用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指向对象的实际类型所定义的。虚函数: 除了构造函数外,任意非static 成员函数都可以是虚函数。保留字virtu
2012-07-23 00:08:10
557
原创 十四章 札记--C++ primer 之旅
重载运算符:具有特殊名称的函数,operator + 操作符符号 ,具有返回类型和形参表。注意: 重载操作符必须具有至少一个类类型或枚举类型的操作数。大多数重载操作符可以定义为普通非成员函数或类的成员函数。作为类成员的重载函数,形参比操作数数目少1,隐含的this 形参,限定为第一个操作数。规则:一般将算术和关系操作符定义为非成员函数,而将赋值操作符定义为成员操作符重载和友元关系: 操作符
2012-07-21 01:12:33
534
原创 十三章 札记--C++ primer 之旅
复制构造函数: 定义: 一种特殊构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。 调用: 当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象是,将隐式使用复制构造函数。析构函数: 定义: 析构函数可用于释放对象在构造或在对象的生命期中所获得
2012-07-20 00:35:15
515
原创 十二章 札记--C++ primer 之旅
类成员: 可以使数据、 函数 或者 类型别名 typedef 定义的所有成员必须在类的内部声明。构造函数: 一般使用一个构造函数初始化列表 来初始化对象的数据成员。 EX: Sales_item() : units_sold(0), revenue(0.0) {} 构造函数初始化式只在构造
2012-07-19 02:39:31
454
原创 十一章 札记--C++ primer 之旅
find 运算: 形参:两个迭代器,检查两个迭代器实参标记范围内的每一个元素。找到与给定值的元素,返回指向该元素的迭代器;如果没匹配元素,这返回第二个形参。注意: 泛型算法从不执行容器操作,单独依赖迭代器和迭代器操作实现,算法基于迭代器及其操作实现,而并非基于容器操作。泛型算法 头文件 泛化的算术算法 头文件只读算法:
2012-07-19 02:27:12
1223
原创 十章 札记--C++ primer 之旅
两个基本的关联容器: map: 关联数组, 元素通过键来存储和读取 set: 集合, multimap: 同一个键可多次出现的map multiset: 同一个键可多次出现的setpair类型 : 头文件 utility map 类型: 头文件 m
2012-07-18 01:07:44
421
原创 九章 札记--C++ primer 之旅
进入容器的学习了。顺序容器:vector 快速随机访问 list 快速插入/删除deque 双端队列顺序容器适配器:(适配器是根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型) stack queue
2012-07-18 01:02:16
415
原创 八章 札记--C++ primer 之旅
IO 对象 不可复制或赋值形参或返回类型不能是流类型,可以通过传递或返回指向该对象的指针或引用 来传递和返回IO 对象。所有流对象都包含一个条件状态成员,类型为iostate 类型流的状态由 bad , fail ,eof 和 good 操作解释,如果 bad,fail 或者 eof 任意一个为 true ,则检查流本身将显示该流处于错误状态。反之,如果三个
2012-07-17 01:02:34
483
原创 七章 札记--C++ primer 之旅
const 形参: 如果将函数形参定义为非引用的const类型,EX: void fcn(const int i) {}; 则不能修改实参的局部副本。 注意: void fcn(const int i) {}; 和 void fcn(int i) {}; 编译的结果是一样的。规则: 如果使用引用实参的唯一目的是避免复制实参,则应该将实参定义为const 引用
2012-07-17 00:57:40
666
原创 五六章 札记--C++ primer 之旅
赋值表达式的值是左操作数的值,其结果的类型为左操作数的类型。赋值操作具有右结合性 。 EX: int ival,jval; ival=jval=0;建议: 只有在必要是才使用后置操作符。++; -- 前置操作不用保存原来操作数的未修改值,操作更少。*iter++ 等价于 *(iter++) : 后自增操作的优先级高于解引用操作
2012-07-16 00:09:55
409
原创 四章 札记--C++ primer 之旅
数组的类型 不能是引用。即不存在引用的数组。数组: char s[]="C++"; 等价于 char s2[]={'c','+','+','\0'}; 数组下标的正确类型是 size_t;指针: 理解指针声明语句时,从右往左阅读。 EX :string *pstring
2012-07-15 23:48:49
374
转载 C++ 操作符优先级表 mark一下,方便查阅哈
优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a + b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;
2012-07-15 16:16:42
507
原创 二章 札记 --C++ primer 之旅
实习告一段落,翻开C++primer 准备苦逼的重温C++ 。以下是一些 从书上抄下来的笔记。测试: -10u 是什么类型?-10u 类型是unsigned int 使用 typeid(-10u).name() 测试的变量的初始化:1、复制初始化: int ival=1024;2、直接初始化: int ival(1024);直接初始化语法更灵活且效率更高。
2012-07-14 23:28:04
730
原创 温习的细节继续 -- VIM 搞起之史
D delete from cursor to end of line (short for "d$") 注意D 这点和Y 不同,Y是复制一整行~ : change case of the character under the cursor .改变光标所在位置字符的大小写,visual mode 下也可以用
2012-07-08 00:19:28
372
原创 VIM 里面称为 Object 的东西 -- VIM 搞起之史
重温了下,发现又忘了一些很有用的操作,写个记录下~~~ 继续学习!!!operator-text object 另外一种操作vim的操作 之前学的除了 visual mode 之外,都是operator-motion, 即操作的对象都是用动作定义的。Ex: d3w 就是删除这个操作所作用的对象是通过当前光标向后移动3个word所得到的。但是当你的光标不是停留在一个单
2012-07-07 00:04:37
878
原创 实习中夹缝里苦逼的vim学习 --VIM搞起之史
可能主题没怎么突出,这些vim的命令都是从 vim自带的 user-manual 里面学习的。这里mark一下哈::syntax manul 人为手动为特定的文档高亮:set syntax=ON:set syntax=OFF // 看就了语法高亮,可能会晕,所以也可以关掉:set autowrite vim 自动buffer 保存到文档:wr
2012-07-04 23:14:04
596
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人