数据结构与算法
视黑梦白
这个作者很懒,什么都没留下…
展开
-
数据结构-二叉搜索树
【代码】数据结构-二叉搜索树。原创 2024-06-12 16:57:06 · 598 阅读 · 0 评论 -
数据结构-二叉树
树(Tree)是一种非常重要的数据结构,它模拟了一种层级或者分支结构。在树结构中,数据以节点(Node)的形式存储,并且每个节点都可以有零个或多个子节点。除了二叉树最后一层,其他各层的节点数都达到最大个数,且最后一层从左向右的叶节点连续存在,只缺右侧若干节点。完美二叉树是特殊的完全二叉树。除了最下一层的叶子节点外,每层节点都有两个子节点,就构成了满二叉树。如果树中每个节点最多只能有两个子节点,这样的树就称之为二叉树。原创 2024-06-12 10:12:45 · 324 阅读 · 0 评论 -
数据结构-哈希表
他的结构就是数组,但是他神奇的地方在于对下标值的一种变换,这种变换可以称之为哈希函数,通过哈希函数可以获取到HashCode。哈希表不像数组、链表和树一样,直接画出来就知道他的结构,甚至原理。哈希表通常是基于数组进行实现的,但是对于数组,它有很多优势。原创 2024-06-11 15:54:47 · 519 阅读 · 1 评论 -
算法-冒泡排序
冒泡排序每一轮(index)循环把max-index 大的数放到数组length-index-1的位置上。第二次循环把倒数第二大的数放到数组倒数第二位置上。第一次循环把最大的数放到数组最后面。***以上描述前提是正序,倒叙相反。原创 2024-06-07 09:48:22 · 106 阅读 · 0 评论 -
线性数据结构-队列
队列(Queue)是一种先进先出(First In First Out, FIFO)的数据结构,它按照元素进入的顺序来处理元素。原创 2024-06-06 11:46:28 · 527 阅读 · 0 评论 -
线性数据结构-栈
在JavaScript中,栈(Stack)是一种遵循后进先出(Last In First Out, LIFO)原则的数据结构。这意味着最后进入栈的元素将会是第一个被移除的元素。栈通常被用于限制线性数据的访问顺序,使得数据的插入和删除操作只能在栈的一端进行。原创 2024-06-06 11:06:15 · 727 阅读 · 0 评论 -
线性数据结构-链表的逆置
【代码】线性数据结构-链表的逆置。原创 2024-06-05 17:35:12 · 98 阅读 · 0 评论 -
线性数据结构-循环遍历和递归遍历
数组循环遍历和递归遍历。链表循环遍历和递归遍历。原创 2024-06-05 14:18:17 · 89 阅读 · 0 评论 -
线性数据结构-链表
单向链表(也称为单链表)是一种简单的数据结构,其中每个节点包含两个部分:一个是数据元素(或称为值),另一个是指向下一个节点的指针。最后一个节点则指向一个空值来表示链表的结束。双链表所有的东西都可以用单链表表示,双链表还存在来个引用空间,极其浪费时间。2、链表的每一个节点都需要创建一个指向next的引用,浪费一些空间。1、只要内存足够大,就能存的下,不用担心内存碎片问题。2、每存放一个值,都要多开销一个引用空间。1、查询速度慢,(指的查询某个位置)线性的数据结构强调存储和顺序。2、链表的添加和删除非常容易。原创 2024-05-31 15:39:56 · 305 阅读 · 0 评论 -
线性数据结构-数组
因为数组定长,当想往长度为8的数组中添加第九个元素时,操作系统会开辟一段长度为16的新的空间(操作系统会开辟一些提前量,多划一些空间),然后将旧数组的八个元素复制到新的数组中,并将新添加的元素,添加到新数组的第九个位置上,并且销毁就数组。1、因为空间必须是连续的,如果数组比较大,当系统的空间碎片较多时,容易存不下。在长度8的数组中删除第5个元素,不改变数组长度,从第六个元素开始向左移动一个单元,即数组删除。2、因为数组长度是固定,所以数组的内容难以被添加和删除。3、数组的变量指向了数组第一个元素的位置。原创 2024-05-31 14:19:08 · 256 阅读 · 0 评论