自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山之巅的专栏

纸上得来终觉浅 绝知此事要躬行

  • 博客(90)
  • 收藏
  • 关注

原创 九度《剑指offer》把数组排成最小的数

昨天舍友问我如果一组数,把数组排成最小的数,我说这是剑指offer上的原题,但是我仔细想了下,感觉书上用字符串做的的确巧妙,但是就没有其他方法呢?我自己想了个方法,用一个结构体,存放这个数和它的位数,两个数先比较最高位,如果最高位相同,在比较次高位,但是比较次高位的时候需要注意,如果次高位小于刚才的高位就不需要交换,如果大于需要交换,比如83、8和89、 8,第一个高位是8相等,第二个是3,如果小

2014-09-04 09:33:34 700

原创 九度《剑指offer》面试题18-24

今天花了一天的时间一共也就刷了7个题,感觉太水了,反正是同志还需努力,都是在看完剑指offer之后理解的基础上自己写的,还是需要感谢九度搭建的这个剑指offer平台原题链接http://ac.jobdu.com/problem.php?pid=1520题目描述:输入两颗二叉树A,B,判断B是不是A的子结构。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测

2014-08-31 01:59:59 850

原创 《Head First 设计模式》之模板方法模式

书上举的例子是,在准备喝咖啡时,我们的步骤是1.把水煮沸2.用沸水冲泡咖啡3.把咖啡倒进杯子4.加糖和牛奶喝茶的方式时1.把水煮沸2.用沸水浸泡茶叶3.把茶倒进杯子4.加柠檬直接写代码就是,代码中的……代表prepareRecipe中四个方法的具体实现,其实感觉有外观模式的感觉package templatemethod;public cla

2014-07-18 21:51:18 740

原创 《Head First 设计模式》之单例模式

单例模式确保一个类只有一个实例,并提供一个全局访问点。而由于单例模式只有一个类,类图就算了。这里只给出正解,对于单线程中可以用,但是多线程中确不能使用的代码,相信任意一本书含有danlimoshi都会介绍,就连《剑指Offer》中也给出了。1.使用“急切”的创建实例,而不用延迟实例化的做法。package singleton;public class Singleton {

2014-07-16 22:35:50 671

原创 《Head First 设计模式》之抽象工厂模式

《head first》书上举的例子讲的还是Pizza的例子,只不过这次是用的原料来模拟抽象共工厂模式,类太多,感觉还是大话的这个例子更贴近一点,类相对来说也少,更加清晰。大话上的例子说的是利用抽象工厂模式模拟实现不同数据库的数据访问。抽象工厂模式提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确制定具体类。感觉看例子还是非常容易懂的。1.首先是两个实体类,此处只列出U

2014-07-16 21:46:55 1675

原创 《Head First 设计模式》之工厂方法模式

书上举的例子讲的是创建各个不同城市的PizzaStore的例子,感觉不是一两句话讲的清的,还是直接看模式的定义吧,然后对比实际的例子返回到定义和类图,这样应该会更有感觉。工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类下面的代码和书上的代码有出入,只是为了反映工厂方法的基本,没有书上的全,如果需要全部的代码,还是看书对应的源代码

2014-07-15 22:38:18 820

原创 《Head First 设计模式》之简单工厂

书上举的例子是:对于不同类型的Pizza,怎么实例化该类型的Pizza,首先使用的是简单工厂,书上说着其实不是一种设计模式,只是一种编程习惯,简单工厂并不复杂,一看就懂,只不过原来我们可能吧所以的方法融合在一个类中,现在简单工厂是将生产工厂的方法独立在一个类中。1.我们先看抽象出来的Pizza类package simplefactory;public class Pizza

2014-07-12 22:55:56 558

原创 《Head first 设计模式》之装饰模式

今天要分享的是装饰模式。书上举的例子是:对于不同口味的咖啡怎么收费的问题,首先抽象出来了一个Beverage饮料类,然后怎么实现让不同口味的咖啡实现不同的收费,比如要一杯加milk的decaf,要一杯soy的houseblend……。这里直接引入正题,装饰者模式:动态的将责任附加到对象上。如要扩展功能,装饰者提供了比继承更能有弹性的替代方案。1.抽象的Beverage,相当于C

2014-07-11 23:13:00 571

原创 《Head First 设计模式》之观察者模式

今天要分享的是观察者模式。书上举的例子是:此系统的三个部分是气象站(获取实际气象数据的物理装置)、WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看)实际就是利用观察者模式建立一个应用,利用WeatherData对象取得数据,并更新三个布告板:目前状况、气象统计和天气预报。观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变

2014-07-11 21:07:47 615

原创 《Head First设计模式》之策略模式

前段时间研究了数据结构,最近一段时间在看设计模式的书,感觉还是有些收获的,所以不才妄自拙笔打算写些设计模式的博客,和志同道合的朋友一起学习。   如果看过了《大话设计模式》和《head first 设计模式》的话,本文参考这两本书,个人推荐head first的书,因为它用的语言是Java,大话用的是C#,主要原因还是head first的书总结的更全一些,特别是思考的过程和there a

2014-07-09 22:32:37 751

原创 九度题目1183:守形数

原题链接:http://ac.jobdu.com/problem.php?pid=1183题目描述:守形数是这样一种整数,它的平方的低位部分等于它本身。比如25的平方是625,低位部分是25,因此25是一个守形数。编一个程序,判断N是否为守形数。输入:输入包括1个整数N,2输出:可能有多组测试数据,对于每组数据,输出"Yes!”表示N是守形数。输出"No

2014-07-08 21:48:26 1436

原创 图算法三之BFS

如果说图的深度优先遍历类似树的前序遍历, 那么图的广度优先遍历就类似于树的层序遍历了,其实我就是按照树的层次遍历来理解图的BFS,因为这样容易记忆还方便理解BFS也贴个图吧代码也不长,感觉和DFS一样,都是侧重于理解,理解了代码就能写出来了先是邻接矩阵的BFSvoid MGraphBFS(int i,struct MGraph *graph){ queue queue;

2014-06-19 11:11:16 761

原创 图算法二之DFS

图的DFS就是从图中某个顶点v出发,访问此顶点,然后从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径想通的顶点都被访问到。还是给个例子把,图形直观其实图的DFS代码还是非常短的,关键是理解怎么遍历的,和BFS区别开,对于邻接矩阵,代码如下void MGraphDFS(int i,struct MGraph *graph){ printf("当前顶点:%d\

2014-06-19 07:29:55 1050

原创 图算法一之图的创建和转换

犹豫了很久,是否写这一章,yi

2014-06-16 16:15:59 974

原创 oracle备份一个用户并迁移

今天用到了将oracle中一个用户下的所有信息导入到另一个机器中的用户下,例如有一台机器中某用户为aa,需要在另一台机器中将aa用户下的所有信息,如表、表空间、索引拷贝到本机的数据库上首先查看aa用户下的默认表空间,或者根据sysdba用户查看select username,default_tablespace from user_users; //当前用户select user,de

2014-05-16 15:34:48 1368

原创 九度题目1009:二叉搜索树

原题链接:http://ac.jobdu.com/problem.php?pid=1009题目描述:判断两序列是否为同一二叉搜索树序列输入:开始一个数n,(1接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。输

2014-05-15 10:25:41 658

原创 九度题目1201:二叉排序树

原题链接:http://ac.jobdu.com/problem.php?pid=1201题目描述:    输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入:    输入第一行包括一个整数n(1    接下来的一行包括n个整数。输出:    可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。 

2014-05-15 10:15:59 575

原创 九度题目1176:树查找

原题链接:http://ac.jobdu.com/problem.php?pid=1176题目描述:有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入:输入有多组数据。每组输入一个n(1输出:输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。样例输入:41 2 3 42样例输出:

2014-05-15 09:55:08 1132

原创 二叉排序树删除值小于value的结点

还是s前面那个题,同学去阿里面试的时候,要求写出代码:   现在有一棵二叉排序树,每个节点保存一个int类型的值,删除值为10以下的节点(树中可能不含值为10的节点),说一下思路,写一下算法。   算了原来错误的思路就不拿出来误导大家了,只能说想简单了,花了几天空闲的时间思考这个问题的功夫,终于把代码写出来了,虽然琢磨了一段时间,但是终究还是写出来了。   经过测试数据或者自己画图,感

2014-05-12 21:21:31 3469 6

原创 查找算法三之二叉排序树

在学习查找算法的时候说过,当时you对树的操作不熟练,所以关于二叉搜索树、B树这些动态查找都没有练习,这一节补上,这一节介绍二叉搜索树。   二叉搜索树,书上叫二叉排序树或者二叉查找树,首先看定义,二叉排序树或者是一颗空树,或者是具有下列性质的二叉树:(1)若他的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若他的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)它

2014-05-10 17:44:54 1341

转载 二叉树算法三之哈弗曼树和编码

这一节介绍哈夫曼树和哈弗曼编码,其中构造哈弗曼树的步骤如下1.根据给定的n个权值{ Wl,响,…,Wn }构成n棵二叉树的集合F={Tl,T2,…Tn},其中每棵二叉树Ti 中只有一个带权为Wi 根结点,其左右子树均为空。2. 在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左右子树上根结点的权值之和。3. 在F中删除这两棵树,同时将新

2014-05-09 16:05:19 979

原创 二级指针的疑惑

在线索二叉树和用后继指针遍历双向链表时,都是用二级指针解决了问题,但是为什么用一级指针就会返回NULL呢,咋们先看下面这道题void test(int *p){ cout<<p<<" "<<endl; int a=1; p=&a; cout<<p<<" "<<*p<<" "<<endl;}int main(){ int *p=NULL; cout<<p<<endl; t

2014-05-08 16:05:52 694

原创 二叉树算法二之中序线索

在介绍线索二叉树之前,我们需要知道对于一个有n个结点的二叉树,每个结点有指向左右孩子的两个指针域,所有一共有2n个指针域。而n个结点一共有n-1个分支线数,则存在2n-(n-1)=n+1个空指针域,而这里介绍的都是指中序线索二叉树。    对于任意的遍历二叉树,为了解决清楚地知道任意一个结点的前驱和后继的问题,引入了线索二叉树,把指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相

2014-05-07 10:01:16 850

原创 二叉树算法一之创建和遍历

按照数据结构的课本,栈和队列的下一章知识应该是讲解串,但是c中对于字符串都是字符数组的概念,且基本的方法都已经封装了,对于c++来说,直接有string这种数据类型,唯一能讲的应该是KMP算法, 但是没有学习过,数组和广义表也用的很少,都跳过,有需要的时候再看,所以这章将重点介绍二叉树,二叉树讲覆盖二叉树的创建和遍历、线索二叉树、哈夫曼树等   树这一节概念比较多,如果光介绍概念和各种不同和一

2014-05-05 20:18:47 875

原创 栈和队列算法四之循环队列

为了解决假溢出的办法就是当队尾"满"了,就再从头开始,也就是头尾相接的循环。我们把队列的这种头尾相接的顺序存储结构称为循环队列。链式存储是不会出现这个问题的。    当队列为空时,此时front==rear,但是现在队列满的条件也是front==rear,怎么判断队列究竟是空还是满呢?   1.解决办法一是设置一个标志变量flag,当front==rear,且flag=0时为空队列,当fr

2014-05-05 09:09:04 1407

原创 栈和队列算法三之队列的基本操作

本节知识介绍与栈相反的一种相反的数据结构,队列,队列是一种先进先出(FIFO)的线性表。允许插入的一端称为队尾,允许删除的一端称为对头,队列只允许在对头删除元素和在队尾插入元素,栈和队列都是操作受限的线性表。   上一节用

2014-05-04 10:46:00 847

原创 栈和队列算法二之栈的应用

栈的应用者一节知识,按照数据结构的课本,一共有5个题:   1.数制转换  2.括号匹配的检验 3.行编辑程序  4.迷宫求解  5.表达式求值     其中括号的匹配和表达式求值中对于没有括号的四则元素,分别参考九度题目1153:括号匹配问题和九度题目1019:简单计算器其中括号匹配问题不再重复,关于表达式求值,还是再写一个加上括号的四则运算数制转换:对于输入的任意一个非负十进制

2014-05-03 21:24:32 711

原创 栈和队列算法一之栈的基本操作

栈是限定仅在表尾进行charuhuo

2014-05-02 11:25:26 1429

原创 Love to My Parents

Today is the first day of May. It'll be onemonth of a year after my graduation. I would ask myself what did I do in thelast year this moment. I was at home, chatting with my father, talking abouthow

2014-05-01 14:49:06 852

原创 链表算法六之多项式相加

按照数据结构的课本,本节知识将介绍多项式的一些曹

2014-05-01 12:01:26 1057

原创 链表算法五之双向链表

前面都是介绍单链表,本节介绍双向链表的一些

2014-04-30 10:55:39 803

原创 链表算法四之循环链表

前面介绍了单链表的一些练习题,

2014-04-29 11:37:54 616

原创 链表算法三之静态链表

本节知识来源于大话数据结构,代码基本上yehi

2014-04-28 21:04:22 653

转载 单链表的一些练习题

本来准备自己写一个单链表的排序,但是没写出来,原因是buzhidao

2014-04-28 20:28:18 1474

原创 链表算法二之单链表逆置

单链表逆置的意思就是把原来的suoyo

2014-04-26 22:04:57 1180

原创 链表算法一之单链表基本操作

这一节介绍另外一种数据结构

2014-04-25 15:19:38 1186

原创 九度题目1431:Sort

原题链接:http://ac.jobdu.com/problem.php?pid=1431

2014-04-24 19:34:54 993

原创 查找算法二之哈希查找

以前对于哈希的用法就是数据结构的时候,

2014-04-24 19:16:47 786

原创 2014.4.22 阿里面试

刚刚从阿里霸面回来, 趁着ji

2014-04-22 20:43:40 845 1

原创 查找算法一之顺序查找 二分查找

上一节介绍了常见的排序算法,今天这一节jie

2014-04-21 16:09:09 922

空空如也

空空如也

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

TA关注的人

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