- 博客(13)
- 收藏
- 关注
原创 JavaScipt实现循环链表
循环链表本质是一种特殊的单链表。循环链表和单链表之间唯一的区别在于,最后一个元素指向下一个元素的指针(tail.next)不是引用 undefined,而是指向第一个元素(head)
2024-01-29 22:01:27 280
原创 JavaScript实现双向链表结构
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
2024-01-29 21:42:19 416
原创 JavaScript实现单链表结构
结点是数据结构中的基本元素,用于存储和表示数据。结点通常包含一个数据项和一个或多个指向其他结点的指针。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。简单来说就是把每个结点连接起来(类比与一节一节的火车,确定好火车头,车厢是可以删除或添加的)
2024-01-26 15:07:04 217 1
原创 JavaScript实现队列结构
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。通俗来讲就类似于日常生活中的排队,就疫情期间做核酸就是一个很好的例子,做核酸需要排队,排队只能是从队尾开始排(入队列),不然属于插队,容易被问候。做完核酸的人可以理解为队头,做完就走理解为出队列。所以队列的特点就是先进先出。
2024-01-24 21:51:15 562
原创 JavaScript实现栈结构
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。(可以简单理解为一个水瓶)栈的特点:后进先出(
2024-01-24 16:07:12 437 1
原创 双指针 + 数组翻转(JavaScript)
先将数组翻转,然后翻转(0,k%nums.length - 1),再翻转(k%nums.length,nums.length-1)返回 [1, 2]。是就返回指针+1,如果两数和大于target说明需要减小两数和,令right--,反之left++向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]
2023-04-18 20:40:21 246
原创 双指针(JavaScript)
遍历数组判断右指针的数是否为0,如果不是就跟左指针的数交换 并且左指针右移一个步长。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]每次遍历右指针步长都+1,遍历完的数组就是答案。解题思路:根据题目意思写代码就好了。组成的新数组,要求也按。定义两根指针指向数组的开头。,编写一个函数将所有。
2023-04-17 15:46:03 467 1
JavaScript实现简易贪吃蛇
2023-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人