数据结构和算法
向前2015
这个作者很懒,什么都没留下…
展开
-
学习笔记栈
首先,栈由定义者自主控制使用,所以不能采用系统分配的栈,必须使用 malloc()分配。对其数据结构,有两种定义方式:方式一:#define SIZE 100;#define ADD 10;typedef int typedata;typedef struct{ typedata* top; typedata* base;}sta原创 2015-11-26 17:39:10 · 526 阅读 · 0 评论 -
学习笔记之递归和分治思想
递归,首先它的目的是把问题缩小为同类问题的子问题,通过不断地递归调用自身,最终到达某次调用能结束返回。如果f()是一个递归函数,调用是这样的:条件:递归到一定程度必须可以终止,不能无限地递归,换句话说,就是递归函数一定是可以结束的。分治,对于一个规模为N的问题,若该问题可以容易解决,则直接解决,否则将其分解为M个规模较小的子问题,这些问题相互独立(这点很重要),并且和原问题形式原创 2015-11-27 17:29:24 · 2758 阅读 · 1 评论 -
“abcd efgh”到“efgh abcd”算法
这个算法对很多人来说比较简单,想起去年去参加面试时,要求在纸上写这个算法,对当初我这个只懂C++语法,没接触过算法和数据结构的新手来说,思路自然是天马行空,记得当时的想法是把每个小串(那个时候没学习过数据结构,不知道子串这个名字)的头指针放到一个数组中,然后数组逆输,现在想起来,那时候之所以有如此天马行空的想法,是因为对常用的数据结构和算法不熟悉,不知道这个题目是想考察什么。 无非原创 2015-11-30 17:12:30 · 1071 阅读 · 0 评论 -
哈希树
本文转载自:http://blog.csdn.net/yuanrxdu/article/details/22474697 Merkle Tree是Dynamo中用来同步数据一致性的算法,Merkle Tree是基于数据HASH构建的一个树。它具有以下几个特点:1、数据结构是一个树,可以是二叉树,也可以是多叉树(本BLOG以二叉树来分析)2、Merkle Tree的叶子节点的valu转载 2016-08-04 10:22:22 · 771 阅读 · 0 评论