数据结构之菜鸟之殇
文章平均质量分 86
David猪大卫
嗨咯,朋友们,让我们一起交流学技术......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构修炼——树?二叉树?堆?从入门到代码实现,第二弹!!!
本文介绍了二叉树的链式实现,包括二叉树的创建与销毁、前序/中序/后序遍历、获取结点个数、求深度等核心操作。重点讲解了如何通过前序遍历序列递归构建二叉树,并分析了不同遍历方式的实现逻辑。此外,还详细说明了二叉树销毁必须采用后序遍历的原因,以及计算结点个数、叶子结点数、第k层结点数和树深度的方法。文章通过图示和代码示例帮助理解二叉树的链式存储结构和相关操作,为后续学习更复杂的树形结构奠定了基础。原创 2024-10-23 08:00:00 · 875 阅读 · 0 评论 -
数据结构修炼——常见的排序算法:插入/希尔/选择/堆排/冒泡/快排/归并/计数
如果a[0]是它的有序区间,那我们不就可以取有序区间后一元素——a[1],与有序区间中的元素依次比较然后插入合适位置,插入后有序区间不就扩大成a[0]到a[1]了,我们接着选a[2]继续比较并插入有序区间,不断重复,直到完成整个数组的排序即可,这就是插入排序的核心内容。其实很简单,A、B部分不一定要个数相等,更重要的是A、B部分内是有序的。归并排序往往从大小为n的区间,一直拆分到大小为2的区间,然后对大小为2的区间排序,所有区间大小为2的区间排序完就可以对区间大小为4的区间排序,排完又可以对更大区间排序。原创 2024-10-23 08:00:00 · 1331 阅读 · 0 评论 -
数据结构修炼——树?二叉树?堆?从入门到代码实现,第一弹!!!
本文介绍了树与二叉树的基本概念和结构。首先阐述了树的定义,即一种非线性数据结构,由有限结点组成的层次集合,并解释了根结点、子树等核心概念。随后详细讲解了树的相关术语,如结点的度、叶结点、分支结点、双亲孩子关系、树的深度等。文章重点介绍了二叉树的概念,包括其特性(每个结点最多两棵子树)和特殊类型(满二叉树、完全二叉树),并比较了它们的区别。最后讨论了二叉树的两种存储结构:顺序存储(适合完全二叉树)和链式存储(二叉链和三叉链),为后续实现二叉树算法奠定了基础。原创 2024-10-11 19:32:09 · 1032 阅读 · 0 评论 -
数据结构修炼——栈和队列是什么?如何实现?从入门到实战
本篇文章介绍了栈与队列的概念与结构,并给出了实现栈与队列的代码示例,在实现代码中特别标注了许多细节,如:栈顶处的下标,栈的扩容问题与入队、出队操作的各种情况等。在初步了解栈与队列后,文章还分享了一些OJ题帮助读者进一步掌握栈与队列的各种操作与特点,并拓展了循环队列的概念与实现。最后提供了几道选择题练习与巩固所有知识。原创 2024-10-11 18:00:00 · 1129 阅读 · 0 评论 -
数据结构修炼——顺序表和链表的OJ题练习
顺序表与链表入门,相关OJ题分享:移除元素,合并两个有序数组,移除链表元素,反转链表,链表的中间结点,合并两个有序链表,链表的回文结构,相交链表,环形链表I,环形链表II......原创 2024-09-14 20:05:00 · 1172 阅读 · 0 评论 -
数据结构修炼——顺序表和链表的区别与联系
线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上,或者说实际的数据存储中,并不一定是连续的,线性表中的元素在物理存储时,通常以数组或链式结构的形式存储。原创 2024-09-14 08:00:00 · 1277 阅读 · 0 评论 -
数据结构修炼——时间复杂度?空间复杂度?教你如何衡量算法的优劣!!
复杂度不仅在校招、面试以及OJ题中常有考察,也帮助了程序员更好的判断算法的优劣。复杂度分为时间复杂度与空间复杂度,而它们的表达都采用的是大O的渐进表示法。大O的渐进表示法是在数量级的层次上来估计算法的复杂度,常见的数量级与大小关系为:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2^) < O(n^3^) < O(2^n^) < O(n!) < O(n^n^)。在这篇文章中,也给出了许多练习来帮助大家更好地理解复杂度的概念与掌握其运用方法。原创 2024-09-13 08:00:00 · 1248 阅读 · 0 评论
分享