![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
chegy218
# 提升技术,项目实战;
# www.chegy122.cn;
展开
-
数据结构与算法系列--数组精讲
在每种编程语言中,基本都会有数组这种数据类型,它不仅仅是一种编程语言的数据类型,还是一种最基础的数据结构。尽管数组看起来非常基础,简单,但是我估计很多人并没有理解这个基础的数据结构的精髓。现在我以问题导向讲解数组的精髓。什么是数组?数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。(专业定义)关键词:线性表,连续,相同类型1,如何实现随机访问?数组有随...原创 2019-04-06 13:52:18 · 260 阅读 · 0 评论 -
数据结构与算法系列--链表精讲
链表也是一种线性表数据结构,与数组不同在于,逻辑上连续,物理空间不连续。链表结构五花八门,重点介绍三种常见的链表结构:单链表,双向链表,循环链表,1,单链表和数组相比,如何做到将零散的内存块串联起来?链表由结点组成,结点由data和next内存块组成。next存储着下一个结点的地址。插入结点删除结点复杂度分析插入删除操作O(1)对比数组,虽然插入和删除操作高效,但是链表不...原创 2019-04-06 15:36:08 · 239 阅读 · 1 评论 -
数据结构与算法系列--哈希表初识
哈希表用的是数组支持按照下标随机访问数据的特性,所以哈希表其实就是数组的一种扩展,由数组演化而来。可以说,没有数组,就没有哈希表。那么,数组与哈希表有什么不同呢?它们都可以通过下标来随机访问,但数组的下标和数组的元素值是没有关系的(和地址有关),数组的本质 https://blog.csdn.net/chegy218/article/details/89055074而哈希表用的就是数组支...原创 2019-04-06 22:12:31 · 198 阅读 · 0 评论 -
数据结构与算法系列--栈的精讲
浏览器的前进后退功能,大家都很熟悉吧?你知道这是如何实现的吗?没错,就是用栈 这种数据结构。如何理解“栈”?就像一摞叠在一起的盘子。从下往上放,从上往下取。后进先出,先进后出,这就是典型的“栈”结构。其实,计算机世界的思想并非石头缝里蹦出来的,现实世界都有它们的影子。从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。相比数组和链表,栈带给我们的只有限制,那为什...原创 2019-04-09 10:51:35 · 129 阅读 · 0 评论 -
数据结构与算法系列--队列的精讲
我们知道,CPU资源是有限的,任务的处理速度与线程格式并不是线性正相关。相反,过多的线程反而导致CPU频繁切换,处理性能下降。所以,线程池的大小一般会综合考虑。当我们向固定大小的线程池中请求一个线程时,如果线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种处理策略又是怎么实现的呢?这就用到了底层的数据结构——队列。...原创 2019-04-09 11:34:09 · 156 阅读 · 0 评论 -
BFS的应用求最短路径
1,前言 因为在leetcode的卡片上学习队列,才发现,都是BFS应用的题目,队列只是个“辅助”,BFS才是“打野”。好吧,那就先解决BFS。什么是BFS?全称:Breadth First Search,是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。(https://zh.wikipedia.org/wiki/广度优先搜索)...原创 2019-04-17 11:41:24 · 3852 阅读 · 0 评论