腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
我是攻城师
专栏作者
举报
492
文章
956642
阅读量
119
订阅数
订阅专栏
申请加入专栏
全部文章
java
其他
编程算法
es 2
spark
存储
hadoop
大数据
lucene/solr
数据库
数据结构
apache
开源
api
sql
github
jdk
jvm
scala
hive
安全
缓存
搜索引擎
linux
分布式
hbase
oracle
数据分析
git
mapreduce
二叉树
node.js
maven
机器学习
json
人工智能
shell
python
spring
hashmap
容器镜像服务
容器
网络安全
https
javascript
云数据库 SQL Server
云数据库 Redis
ide
nginx
yarn
spring boot
数据处理
windows
系统架构
nat
xml
nosql
eclipse
opencv
c++
html
jar
游戏
jdbc
npm
php
ruby
go
servlet
react
mvc
打包
TDSQL MySQL 版
网站
http
压力测试
正则表达式
yum
numpy
zookeeper
gradle
微信
微服务
数据挖掘
swift
c 语言
perl
.net
bootstrap
angularjs
css
ajax
android
单片机
tomcat
unix
centos
深度学习
文件存储
日志服务
mongodb
图像处理
自动化
黑客
爬虫
html5
图像识别
grep
cdn
tcp/ip
flash
kernel
anaconda
机器人
数据可视化
物联网
安全漏洞
云计算
apple
com
google
microsoft
yahoo
磁盘
域名
搜索文章
搜索
搜索
关闭
5分钟轻松理解二叉树的深度遍历策略
二叉树
编程算法
数据结构
我们知道普通的线性数据结构如链表,数组等,遍历方式单一,都是从头到尾遍历就行,但树这种数据结构却不一样,我们从一个节点出发,下一个节点却有可能遇到多个分支路径,所以为了遍历树的全部节点,我们需要借助一个临时容器,通常是栈这种数据结构,来存储当遇到多个分叉路径时的,存暂时没走的其他路径,等走过的路径遍历完之后,再继续返回到原来没走的路径进行遍历,这一点不论在递归中的遍历还是迭代中的遍历中其实都是一样的,只不过递归方法的栈是隐式的,而我们自己迭代遍历的栈需要显式的声明。
我是攻城师
2019-07-08
929
0
深入理解Trie树
数据结构
存储
编程算法
前面的文章介绍过各种高效的的数据结构,比如二叉搜索树,AVL树,红黑树,B树,跳跃表等,今天我们再来学习一种多路树,叫做Trie树。
我是攻城师
2019-06-03
1.9K
0
深入理解什么是B树?
数据结构
二叉树
前面的文章,我们已经介绍过其他的几种高级的动态数据结构,典型如红黑树,跳跃表等,今天我们再来学习另外一种高级数据结构B树,我们知道树的查询时间复杂度和其树的高度有直接关系,当我们向红黑树里面插入大量的数据时,有两个问题:
我是攻城师
2019-05-14
4.8K
0
深入理解什么是跳跃表
数据结构
编程算法
前面的文章我们学习了性能高效的基于二叉搜索树的动态数据结构红黑树,其平均时间复杂度为O(logN),今天我们再来学习另外一种优秀的数据结构跳跃表,其综合性能与红黑树一样,而且功能更强大,从某种意义上来说是可以替代红黑树的。
我是攻城师
2019-05-07
2.5K
0
什么是二叉搜索树
二叉树
数据结构
编程算法
二叉搜索树是一种综合效率比较好的一种数据结构,搜索、插入、删除的复杂度等于树高, 平均空间复杂度为O(n),时间复杂度为O(log n),最坏时间复杂度为O(n),(当插入的数列有序,导致二叉树退化为线性表),故一些其他的树,在二叉搜索树基础上进行改良的平衡树,如AVL树、红黑树等,可以使得树的高度总是得到平衡,从而使得最坏的情况下,时间复杂度也能达到O(log n)。
我是攻城师
2019-04-28
990
0
还分不清楚一些二叉树种类和概念?
二叉树
数据结构
刚接触二叉树的学习的时候,相信很多人可能会被二叉树各种各样的叫法和概念给绕晕了,今天就来科普一下关于二叉树我们需要知道的一些树的种类,以及它的特点。
我是攻城师
2019-04-28
3.4K
0
数据结构与数据类型的区别,联系,本质?
存储
数据结构
数据结构与数据类型相信我们并不陌生,在日常开发中天天都能接触到,但如果要让你解释一下它们的本质区别和联系,你是否能准确的描述呢?
我是攻城师
2019-03-19
7.6K
3
数据结构之(树)
二叉树
存储
数据结构
编程算法
在计算机科学中,树(英语:tree)是一种非线性的抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合
我是攻城师
2019-03-19
852
0
为什么Java里面String类是不可变的
java
缓存
编程算法
数据结构
jvm
在Java里面String类型是不可变对象,这一点毫无疑问,那么为什么Java语言的设计者要把String类型设计成不可变对象呢?这是一个值得思考的问题。
我是攻城师
2019-03-06
693
0
什么是线程安全?
编程算法
安全
数据结构
java
jdk
线程安全在多线程编程时是一个比较重要的概念,我们下先来看下维基百科是如何定义这个概念的:
我是攻城师
2019-03-06
1.9K
0
理解BitMap算法的原理
编程算法
数据结构
其他
数据处理
java
位图:一种常用的数据结构,代表了有限域中的稠集(dense set),每一个元素至少出现一次,没有其他的数据和元素相关联。在索引,数据压缩,海量数据处理等方面有广泛应用。
我是攻城师
2018-11-30
6.7K
0
理解递归算法的原理
编程算法
java
数据结构
存储
递归(Recursion)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法,其核心思想是分治策略。 递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。
我是攻城师
2018-10-19
9.7K
2
理解Java并发工具包线程池的设计
java
jvm
数据结构
nat
缓存
创建线程的流程依赖底层的操作系统,不同的操作系统可能不一样,此外更多的线程意味着 OS调度需要做更多的工作来决定哪一个线程可以访问资源,并且要通过OS调度切换维护线程的各种状态。
我是攻城师
2018-09-30
690
0
理解算法的复杂度
编程算法
存储
数据结构
二叉树
在计算机科学中,算法的时间复杂度是一个函数,它定性描述该算法的运行时间,时间复杂度常用大O符号表示,不包括这个函数的低阶和首项系数,使用这种方式时,时间的复杂度可被成为是渐近的(asymptotic analysis),渐近是指在数学分析中是一种描述函数在极限附近的行为的方法,有多个科学领域应用此方法。
我是攻城师
2018-09-30
845
0
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
java
hashmap
数据结构
安全
jdk
(2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路
我是攻城师
2018-09-30
1.4K
0
理解Java8并发工具类ConcurrentHashMap的实现
java
hashmap
数据结构
安全
前面的文章已经分析过List和Queue相关的接口与并发实现类,本篇我们来分析一下非常Java里面非常重要的一个数据结构HashMap。(注意Set类型在这里我们不在单独分析,因为Set本身并不能算一种数据结构,它可以借助任何其他数据结构如array或者map类来实现。)
我是攻城师
2018-09-30
930
0
理解Java队列接口Queue的设计
java
编程算法
数据结构
Queue接口不属于Java并发包下面的类,它是java.util下面的一个接口,虽然这个接口跟并发没有直接关系,但是它抽象和定义了在Java里面队列的通用方法,最重要的是这个类也是Java并发大神Doug Lea设计的,所以学习和了解这个接口是非常有必要的。
我是攻城师
2018-09-30
1.9K
0
理解Java并发里面的CAS概念
java
安全
数据结构
我们知道在Java多线程里面关于共享变量的操作,一定是要使用线程同步来保证线程安全的,一旦涉及线程同步,就需要加锁,一旦加锁就意味着某一个时候只能有一个线程在操作,其他的线程如果没有得到锁就会阻塞起来,此时的线程的状态是BLOCKED,当前面的线程释放锁的时候,系统会自动调度当前的线程进入临界区,这里面存在一个问题,就是线程的上下文切换的问题,虽然比起来进程的上下文切换,线程的上下文切换更轻量级,但仍然也是有一定开销的,比如最简单的i++的例子,那么如何有没有一种不需要加锁也能保证线程安全的数据结构呢?答案是肯定的,这就是今天需要谈到的CAS(Compare And Swap或 Compare And Set)。
我是攻城师
2018-07-23
992
0
Java里面volatile关键字修饰引用变量的陷阱
java
数据结构
编程算法
如果我现在问你volatile的关键字的作用,你可能会回答对于一个线程修改的变量对其他的线程立即可见。这种说法没多大问题,但是不够严谨。
我是攻城师
2018-07-23
949
0
JDK8中LinkedList的工作原理剖析
数据结构
LinkedList虽然在日常开发中使用频率并不是很多,但作为一种和数组有别的数据结构,了解它的底层实现还是很有必要的。 在这之前我们先来复习下ArrayList的优缺点,ArrayList基于数组的动态管理实现的,数组在内存中是一块连续的存储地址并且数组的查询和遍历是非常快的;缺点在于在添加和删除元素时,需要大幅度拷贝和移动数据,还要考虑是否需要扩容操作,所以效率比较低。 正是由于上面的不足,才出现了链表的这种数据结构,首先链表在内存中并不是连续的,而是通过引用来关联所有元素的,所以链表的优点在于添加和删
我是攻城师
2018-05-15
690
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档