分类 技术 下的文章

[学习笔记]二叉树的线索化和遍历

在啃二叉树的线索话的时候遇到了一点疑惑,google和度娘和很多文章也没有对此的详解,遂做下笔记,方便自己也说不定也对此问题有同样疑惑的童鞋有帮助:)

线索化的原因:充分利用空闲指针域&&遍历的方便.

- 阅读剩余部分 -

[学习笔记]二叉树的遍历

概念:就是从二叉树的根结点出发,按照一定得次序依次访问二叉树中的所有结点,是的每个结点被访问到的次数都为1.

遍历法:前序遍历.中序遍历,后序遍历.

其实这里的前序,中序,后序是按照双亲被遍历的位置而定的.前序就是最先遍历双亲,中序就是在左孩子遍历后遍历双亲,后序就是最后遍历双亲.举个最简单的例子就是如下所示一个最简单的二叉树:

- 阅读剩余部分 -

SecretDiary-私密日记本php程序

差不多每天都有写日记的习惯.以前是在笔记本上面写.12年时发现了吾志(http://5diary.com)这个小网站,一对小夫妻建的,很不错的说.也养成了每天写完日记后看别人的日记的习惯只是网站服务器在天朝,害怕哪天数据就没了,这种事情,咳咳,大家都懂的.遂不久就把zblog修改成了日记本程序,阵地也转移到了自己的主机上去了.去年把博客从asp转到php无暇顾及日记本,再次回到了吾志的怀抱.昨天无意看到typecho更新到了0.9,连以前它那个奇慢的官方网站也秒速了.遂体验了下新版本.没想到真的是惊艳无比.清爽,干净.这不是我一直想要的程序吗?顺手发现了几个不错的插件,接着把typecho给糟蹋了一遍,于是便有了新的日记本程序.暂且叫它SecretDiary吧,当然copyright还是归typecho所有...

- 阅读剩余部分 -

[转]30个有关Python的小技巧

译文来源:http://blog.jobbole.com/63320/

原文来源:http://sahandsaba.com/thirty-python-language-features-and-tricks-you-may-not-know.html

从我开始学习python的时候,我就开始自己总结一个python小技巧的集合。后来当我什么时候在Stack Overflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当时我会努力的自己尝试一下这段代码,直到我懂了它的整体思路以后,我就把这段代码加到我的集合里。这篇博客其实就是这个集合整理后一部分的公开亮相。如果你已经是个python大牛,那么基本上你应该知道这里面的大多数用法了,但我想你应该也能发现一些你不知道的新技巧。而如果你之前是一个c,c++,java的程序员,同时在学习python,或者干脆就是一个刚刚学习编程的新手,那么你应该会看到很多特别有用能让你感到惊奇的实用技巧,就像我当初一样。

- 阅读剩余部分 -

[学习笔记]KMP匹配算法及next推导过程

首先先对D.E.Knuth,J.H.Morris以及V.R.Pratt这三位老前辈致敬,发明了这个高效的算法.

来看下这个算法.在我们的朴素匹配模式算法中我们会发现做了无用功,比如我们在字符串A"abcdabdac"中查找字符串B''abd".按照逻辑,我们是从头到尾进行字符串A和B的比较

Untitled.png

- 阅读剩余部分 -

[学习笔记]循环队列和队列的链式结构

先来说下队列.其实就是线性表的变种.遵循先进先出,即删除数据的位置为头结点,新增数据的位置为尾结点.恩,就是这么简单...

好了,按照在线性表的顺序存储我们知道了如果我们删除一个数据的话那么时间复杂度为0(N),既然我们现在知道了我们每次删除的都是头结点,咱们定义一个int性的front来存储头结点的下标,那么我们的复杂度就是0(1)了不是,增加数据也就简单了,搞一个int型的rear来存储尾结点的下标,然后增加数据的时间复杂度也为0(1)了,Wow,cool...但是...咱们就想了啊,如果加入在一个可以存储10个数据的队列里,先一口气插入了10个数据,接下来,我们删除前9个数据,那么现在front和rear的值都是9了对不对,好了,我们再新增一个数据,额,都到了数组末尾了,sorry.不能新增了...可是...可是...前面空了9个位置啊亲!咋就不能灵活点嘛!于是乎就有了循环队列.即rear到达了数组末尾的时候再新增数据rear值移到0即数组开头不就行了!好了,有个问题又来了,咱们如何判断队列是满了呢?当rear==front的时候?嘿嘿,那你估计一辈子都插不进数据了,咱们刚开始的时候不是rear就等于front嘛...那咱们再设一个bool型的flag,初始化的时候flag=0表示队列空,然后当满的时候flag设置为1,这样不就解决了问题了嘛,赞一个,确实可以如此,不过也可以这样,那就是咱们留一个位置来不放数据,即(rear+1)%MAXSIZE==Front的时候表示队列满了.ok,上数据结构和代码:

- 阅读剩余部分 -