hebtu666

少说,多做。

排序:
默认
按更新时间
按访问量
RSS订阅

数据结构与传统算法总结

由于时间和水平有限,肯定有错误或者写得不好的地方,欢迎在文章下评论指出。   涉及语言: py3:注重算法本身的知识 c/c++:实现基础数据结构和算法 java:实现较复杂数据结构     一、概述                          c语言知识体系      ...

2018-12-18 13:28:38

阅读数 21492

评论数 38

跳表

为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树 出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树, 还要参考网上的...

2019-01-30 14:01:15

阅读数 382

评论数 0

哈夫曼实现文件压缩解压缩(c语言)

写一个对文件进行压缩和解压缩的程序,功能如下: ① 可以对纯英文文档实现压缩和解压; ② 较好的界面程序运行的说明。     介绍哈夫曼:   效率最高的判别树即为哈夫曼树 在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是...

2019-01-23 17:04:47

阅读数 669

评论数 1

AVL Tree

前言   希望读者 了解二叉搜索树 了解左旋右旋基本操作 https://blog.csdn.net/hebtu666/article/details/84992363 直观感受直接到文章底部,有正确的调整策略动画,自行操作。 二叉搜索树   二叉查找树(Binary Search...

2018-12-18 10:29:19

阅读数 767

评论数 2

皇后问题

八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n1×n1,而皇后个数也变成n2。而且仅当...

2018-11-29 15:44:55

阅读数 2082

评论数 3

求完全二叉树的结点个数

第一次见这个题,看时间小于O(N)。。。。。 只能是二分啊。 但是怎么二分,条件是什么,真的想不到。   后来知道了,我们要找最深一层最右边那个结点。借此确定结点个数。   我们知道,满二叉树的结点个数和深度是有公式的,那么我们找到最后一层最右边的结点,其实就可以确定结点个数。 ...

2018-11-20 11:05:11

阅读数 341

评论数 0

判断完全二叉树

完全二叉树的定义: 一棵二叉树,除了最后一层之外都是完全填充的,并且最后一层的叶子结点都在左边。 https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E4%BA%8C%E5%8F%89%E6%A0%91/7773232?fr=aladdin 百度定义...

2018-11-19 17:47:33

阅读数 457

评论数 0

二叉树最长路径

分析: 暴力求每一段距离也可。   对于以本节点为根的二叉树,最远距离有三种可能: 1)最远路径来自左子树 2 )最远路径来自右子树(图示与左子树同理) 3)最远路径为左右子树距离根最远的两个节点,经过根结点连起来。 (多种最长路径)   需要的信息: 1)左子树的最远...

2018-11-19 17:22:27

阅读数 461

评论数 0

最大搜索子树

给定一个二叉树的头结点,返回最大搜索子树的大小。   我们先定义结点: public static class Node { public int value; public Node left; public Node right; public Node(in...

2018-11-19 15:36:51

阅读数 431

评论数 0

后缀树/后缀数组

字典树:https://blog.csdn.net/hebtu666/article/details/83141560 后缀树:后缀树,就是把一串字符的所有后缀保存并且压缩的字典树。   相对于字典树来说,后缀树并不是针对大量字符串的,而是针对一个或几个字符串来解决问题。比如字符串的回文子串...

2018-10-29 21:42:56

阅读数 399

评论数 0

map+DP leetcode446

  如果数字序列由至少三个元素组成并且任何两个连续元素之间的差异相同,则称为算术序列。 例如,这些是算术序列: 1,3,5,7,9  7,7,7,7  3,-1,-5,-9  以下序列是不算术。 1, 1, 2, 5, 7 给出了由N个数组成的零索引数组A. 该阵列的子序列切片是任何整数...

2018-10-29 16:04:19

阅读数 1671

评论数 0

AC自动机

今天写一下基本的AC自动机的思想原理和实现。 Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有模式树(字典树)T...

2018-10-27 10:24:28

阅读数 733

评论数 0

堆应用例题三连

一个数据流中,随时可以取得中位数。 题目描述:有一个源源不断地吐出整数的数据流,假设你有足够的空间来保存吐出的数。请设计一个名叫MedianHolder的结构,MedianHolder可以随时取得之前吐出所有树的中位数。 要求: 1.如果MedianHolder已经保存了吐出的N个数,那么...

2018-10-25 15:56:12

阅读数 424

评论数 0

前缀树

是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 字典树又称为前缀树或Trie树,是处理字符串常见的数据结构。假设组成所...

2018-10-18 10:24:12

阅读数 528

评论数 0

morris遍历

通常,实现二叉树的前序(preorder)、中序(inorder)、后序(postorder)遍历有两个常用的方法:一是递归(recursive),二是使用栈实现的迭代版本(stack+iterative)。这两种方法都是O(n)的空间复杂度(递归本身占用stack空间或者用户自定义的stack)...

2018-10-17 10:02:48

阅读数 735

评论数 2

单调队列优化的背包问题

对于背包问题,经典的背包九讲已经讲的很明白了,本来就不打算写这方面问题了。 但是吧。。。。。   我发现,那个最出名的九讲竟然没写队列优化的背包。。。。 那我必须写一下咯嘿嘿,这么好的思想。   我们回顾一下背包问题吧。   01背包问题  题目  有N件物品和一个容量为V的背...

2018-10-12 12:18:41

阅读数 1717

评论数 3

双栈

利用栈底位置相对不变的特性,可以让两个顺序栈共享一个空间。 具体实现方法大概有两种: 一种是奇偶栈,就是所有下标为奇数的是一个栈,偶数是另一个栈。但是这样一个栈的最大存储就确定了,并没有起到互补空缺的作用,我们实现了也就没有太大意义。 还有一种就是,栈底分别设在数组的头和尾。进栈往中间进就可...

2018-10-11 13:46:24

阅读数 351

评论数 0

链表相交问题

本来想自己写,写了一半发现一篇文章,解释写得简单易懂,我就直接拿过来了。 这个问题值得反复地写,锻炼链表coding能力的好题。     //如果两个链表都不带环 int NotCycleCheckCross(pLinkNode head1,pLinkNode head2) {...

2018-10-10 13:01:16

阅读数 802

评论数 0

线性表表示集合

集合我们高中都学过吧? 最重要的几个特点:元素不能重复、各个元素之间没有关系、没有顺序 集合内的元素可以是单元素或者是集合。 对集合的操作:交集并集差集等,还有对自身的加减等。 需要频繁的加减元素,所以顺序存储效率较低,但是我们还是说一下是怎么实现的:     用01向量表示集合,因为现...

2018-10-10 11:09:55

阅读数 362

评论数 0

线性表实现一元多项式操作

  数组存放: 不需要记录幂,下标就是。 比如1,2,3,5表示1+2x+3x^2+5x^3 有了思路,我们很容易定义结构 typedef struct node{ float * coef;//系数数组 int maxSize;//最大容量 int order...

2018-10-09 16:34:19

阅读数 355

评论数 0

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