bitcarmanlee的博客

专注算法与数据,正在计划写机器学习方面的数学书籍,有出版社的朋友请联系。微信1833133594...

二叉树递归非递归遍历,层次遍历,反转,输出路径等常见操作详细总结

1.序言 在实际工作中,很多业务场景其实也需要一些比较巧妙的算法来支撑,并不是业务逻辑就全是复制粘贴或者说重复的代码写一百遍。越是随着算法研究的深入,越是发现数据结构的重要性。或者说,数据结构中就蕴藏着无数精妙算法的思想,很多算法的思想在数据结构中体现得非常突出。而作为一种非线性的数据结构,二叉...

2019-01-01 22:59:40

阅读数 886

评论数 1

java队列(Queue)用法总结

1.队列的特点 队列是一种比较特殊的线性结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列中最先插入的元素也将最先被删除,对应的最后插入的元素将最后被删除。因此队列又称为“先进先出”(FIFO—fir...

2018-11-30 19:05:56

阅读数 2360

评论数 1

海量数据处理算法—Bloom Filter

1. Bloom-Filter算法简介Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素...

2017-11-26 00:00:08

阅读数 459

评论数 0

二叉树反转java实现

反转二叉树是数据结构中一种经典的操作。如下图所以,反转二叉树就是交换所有节点的左右子树。 具体代码实现如下:package com.xiaomi.tree;import java.util.LinkedList; import java.util.List;/** * Created by w...

2017-08-05 18:07:06

阅读数 997

评论数 0

链表常见操作java实现二:反转链表,从尾到头倒序遍历

1.反转链表反转链表在面试中非常常见。例如: 将原链表: 0->1->2->3 反转为新链表: 3->2->1->0 反转链表的一般思路是使用三个指针。其中,一个指针为当前节点,一个指针指向当前节点的下一个节点,另外一个节点则指向新链表表头从而保存结果...

2016-08-08 22:40:06

阅读数 10719

评论数 0

链表常见操作java实现一:链表初始化,求链表长度

1.前言链表是一种非常基础也非常重要的数据结构,在实际中使用非常广泛,也是各种面试里特别容易出现的类型。尤其在各大IT公司的校招中,不管笔试还是面试,链表几乎都是必出现的题型。因此不管从实际工作场景中,还是在找工作的过程中,熟练掌握链表的相关操作都显得非常重要。看看wiki里给链表的介绍: 链表...

2016-08-08 20:24:27

阅读数 9910

评论数 0

归并排序 详解

1.归并排序简要介绍归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。2.归并排序优缺点优点 1.归并排序的效率达到了巅峰:时间复杂度为O(nlogn),这是基于比较的排序算法所能...

2016-07-05 19:46:02

阅读数 575

评论数 0

递归 非递归 遍历二叉树

二叉树的重要性,想必大家都非常清楚。在数据结构中,二叉树是一种非常重要,也非常基础的非线性结构。遍历是二叉树最基础也是最重要的操作了。最常见的分为前序遍历,中序遍历,后续遍历。废话不多说,先直接上代码。package tree;import java.util.ArrayList; import ...

2016-07-04 18:16:34

阅读数 595

评论数 0

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