摘要: 二叉搜索树算法:1、直接输入搜索序列,构造出类似于折半搜索的判定树那样的树形结构,就能很快实现搜索,这就是二叉搜索树。2、二叉搜索树是一种动态的搜索结构,输入元素的关键码序列不同的话会有不同形态的二叉搜索树。3、二叉搜索树的定义:二叉搜索树或者是一颗空树,或者是具有下列性质的二叉树。a)每个结点都有一个作为搜索依据的关键码,所有结点的关键码各不相同b)左子树上的所有结点的关键码都小于根结点的关键码。c)右子树上的所有结点的关键码都大于根结点的关键码。d)左子树和右子树也都是二叉搜索树。由第四条可以推断出,二叉搜索树的定义也是递归的。二叉搜索树常用来表示字典结构。二叉搜索树的抽象类型定义:#in 阅读全文
posted @ 2013-04-30 12:48 李VS超 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 每次调用函数时都会重新创建该函数所有形参的值,此时所传递的实参将会初始化对应的形参。形参的初始化和变量的初始化一样,如果形参具有非引用类型,则复制实参的值,如果形参为引用类型,则它只是实参的别名。1、非引用形参普通的非引用类型的参数通过复制对应的实参实现初始化。当用实参副本初始化形参时,函数并没有访问调用所传递的实参本身,因此不会修改实参本身。典型的例子:int gcd(int v1,int v2){ while(v2) { int temp=v2; v2=v1%v2; v1=temp; } return v1;} whi... 阅读全文
posted @ 2013-04-30 12:39 李VS超 阅读(756) 评论(0) 推荐(0) 编辑
摘要: 10年猎头生涯,年薪百万的牛人也接触不少。无论在内企,还是在外企,凡是成功人士(以下简称他们)的身上都有独特的个得人能力和得人格魅力,这或许正是一般得人所缺乏的,他们的成功决不能简单地归结为机遇好,这些能力可概括为以下15点1、解决问题时的逆向思维能力面对工作中遇到的新问题,一时又找不到解决方法。而且,上司可能也没有什么锦囊妙计时,他们擅长用逆向思维办法去探索解决问题的途径。他们清楚具体业务执行者比上司更容易找出问题的节点,是人为的,还是客观的;是技术问题,还是管理漏洞。采用逆向思维找寻问题的解决方法,会更容易从问题中解脱出来。2、考虑问题时的换位思考能力在考虑解决问题的方案时,常人通常站在自 阅读全文
posted @ 2013-04-27 10:04 李VS超 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 字符串,是一串文字和符号的序列。字符串是由零个或者多个字符的顺序排列所组成的数据结构,其基本元素组成元素是单个字符,字符串的长度可变。字符串在计算机中的处理非常广泛,人机之间信息的交互,文字信息的处理,生物信息学中基因信息的提取以及Web信息的提取等,都离不开字符串的处理。C++和C语言都有很多写好的库函数。这里是一个简单的字符串的实现以及一个朴素的字符串匹配算法。字符串的抽象数据类型表示:#include<cstring>#include<iostream>using namespace std;#define MaxStrSize 100//字符串的抽象数据类型表示 阅读全文
posted @ 2013-04-27 09:52 李VS超 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 第一阶段:练经典常用算法,1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.8. 调用系统的qsort, 技巧很多,慢慢掌握.9. 任意进制间的转换第二阶段:练习复杂一点,但也较常用的算法。如:1. 二分图匹配(匈牙利),最小路径覆盖2. 网络流,最小费用流。3. 线段树.4. 并查集。5. 熟 阅读全文
posted @ 2013-04-26 18:58 李VS超 阅读(1882) 评论(0) 推荐(0) 编辑
摘要: 上一篇关于链式栈有一些小问题,这次解决了,记录一下。抽象数据类型代码://栈内元素顶点struct Stacknode{ int data; Stacknode *nextnode;};//链式栈类定义class Stack{public: //构造函数,析构函数 Stack() { top=NULL; //初始化栈顶指针 bottom=NULL; } ~Stack(){} //入栈,出栈函数 void Push(int data); int Pop();private: Stacknode *top; //栈顶指针 Stacknode *bottom; //栈底指针};入栈函数代码... 阅读全文
posted @ 2013-04-24 13:30 李VS超 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 纠结图的深度优先搜索算法好久,非递归算法需要用到栈来记录上一次访问的结果,但是大脑中反应不出来。这里做一个记录:栈的用处:在这一步执行完成之后,下一步需要用到上一步执行的结果,用栈来实现往往是最有效的。以下是转载的内容:深度优先遍历算法的非递归实现需要了解深度优先遍历的执行过程,设计一个栈来模拟递归实现中系统设置的工作栈,算法的伪代码描述为:假设图采用邻接矩阵作为存储结构,具体算法如下:[cpp] view plaincopyprint? 深度优先遍历算法的非递归实现需要了解深度优先遍历的执行过程,设计一个栈来模拟递归实现中系统设置的工作栈,算法的伪代码描述为: 假设图采用邻接矩阵作为存储结. 阅读全文
posted @ 2013-04-23 21:54 李VS超 阅读(2196) 评论(0) 推荐(1) 编辑
摘要: 队列是一种限定存取位置的线性表。它只允许在表的一端插入,在另一端删除。队列的核心思维是:入队的时候用队尾指针控制,出队的时候用队首指针控制。编程总结:1、在类中声明变量,在构造函数中初始化,是个很好的编程方法。2、入队的时候用队尾指针控制,出队的时候用队首指针控制。3、用到指针的时候,时时刻刻判断指针的值和指向。队列的抽象数据类型表示代码为://队列结点struct QueueNode{ int data; QueueNode *next;};//队列,先入先出的数据结构class Queue{public: //构造函数析构函数 Queue() { //要善于利用构造函数初始化这个操作 .. 阅读全文
posted @ 2013-04-23 18:48 李VS超 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章(作者:陈皓,酷壳coolshell.cn博主)。我的这个朋友把这篇文章取名叫Buil 阅读全文
posted @ 2013-04-22 12:45 李VS超 阅读(304) 评论(1) 推荐(0) 编辑
摘要: 待续 阅读全文
posted @ 2013-04-20 17:06 李VS超 阅读(99) 评论(0) 推荐(0) 编辑