随笔分类 -  # 数据结构

摘要:一、介绍 1.1 队列是什么结构 队列和生活中排队的场景非常一致,先来的人先买后来的人后买,后来的人只能站在队尾,不允许插队。队列和栈一样,也是一种操作受限的线性表数据结构。 其他特殊队列:循环队列、阻塞队列、并发队列 二、队列的实现 与栈一样,队列可以基于数组实现也可以基于链表来实现。分别称为顺序 阅读全文
posted @ 2022-12-12 23:36 青花石 阅读(29) 评论(0) 推荐(0)
摘要:一、介绍 1.1 栈是什么结构 像一摞叠放的盘子,放牌子的时候只能将盘子放在最上面,取盘子的时候只能先取最上面的盘子。**后进先出,先进后出,**这就是典型的栈结构。 1.2 栈带给我们的只有限制,有了数组和链表为啥还需要栈? 功能上来说,数组、链表完全可以替代栈,但是越灵活越自由,代表着更容易出错 阅读全文
posted @ 2022-12-12 23:35 青花石 阅读(62) 评论(0) 推荐(0)
摘要:问题 如果字符串存储在单链表中,怎么快速判断这个字符串是否是回文字符串? 知识点 快慢指针、链表反转 实现思路 一般方法 复杂度为O(n²) 如果字符串存储在数组中,那么只需要判断第一个和最后一个这么一一对应下去,判断字符是否相同,还是比较简单的。如果单链表中存储也参照这种方法,那么可以定义两个指针 阅读全文
posted @ 2022-09-25 06:55 青花石 阅读(65) 评论(0) 推荐(0)
摘要:数组的定义 一种线性表结构,用一组连续的内存空间存储一组具有相同类型的数据。 线性表 数据排列成一条线一样的结构、数据只有前后两个方向。包括数组、链表、栈、队列都是线性表,但是图、树等数据结构,数据之间不是简单的前后关系所以不是线性表。连续的内存空间 & 相同的数据类型这两个特性,让数组的随机访问变 阅读全文
posted @ 2022-09-21 21:43 青花石 阅读(99) 评论(0) 推荐(0)
摘要:数组 数组结构的标准存储方式,是连续的空间,且相同的数据类型,只有这样,数组才能实现根据下标的快速房访问。但是在一些编程语言中,数组不一定是连续的,也不一定是相同类型的。数组还有可能是变长的,二位数组长度还有可能不相等。 编程语言,在实现数组结构时,会根据编程语言自身特点,对数组结构进行了相应的调整 阅读全文
posted @ 2022-09-21 21:42 青花石 阅读(109) 评论(0) 推荐(0)
摘要:数据结构和算法,是解决 “快” 和 ”省“ 的问题,如何衡量算法的执行效率,就要用到时间复杂度分析、空间复杂度分析 一、复杂度分析的意义 问题:通过监控和统计,能实际获取算法执行的时间和内存,为何仍需要时间复杂度分析和空间复杂度分析? 原因: 通过运行代码来统计复杂度也是有名字的,称为 ”事后统计法 阅读全文
posted @ 2022-09-21 21:03 青花石 阅读(129) 评论(0) 推荐(0)