Skip to content

shqming/js-dataStructures-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

前言

最近在复习数据结构与算法,乘此机会用JavaScript重写一下常见的数据结构和算法。

运行环境

Node版本 >= 13

运行测试用例

  1. 在集成终端中打开测试用例
  2. node xxx 运行测试测试用例

代码目录

  • JavaScript实现栈

  • JavaScript实现队列

应用

代码见apply文件夹

1. 利用栈结构的特点封装实现十进制转换为二进制的方法

输入 100

输出 ’1100100‘

2. 判断合法的出栈顺序

例:入栈顺序 6,5,4,3,2,1 判断出栈顺序 5,4,3,6,1,2 是否合法


输入: [6,5,4,3,2,1] , [5,4,3,6,1,2]

输出:true


输入:[6,5,4,3,2,1] , [3,4,6,5,2,1]

输出:false

思路伪代码:
arr1依次进入栈stack
1.每次入栈都和arr2[0]比较,若stack栈顶==arr2[0],则stack.pop(),arr2.shift().
2.弹出时 继续比较stack栈顶 是否等于 arr2[0],等于则重复2步骤,不等于则重复1,2步骤
3.arr1入栈完毕时看stack是否为空,不为空则继续判断stack栈顶是否等于arr2[0]直到stack.peek()!=arr2[0] return false,否则 return true;

队列

1. 使用队列实现小游戏:击鼓传花

在这个游戏中,孩子们围成一个圆圈,把花尽快地传递给旁边的人。某一时刻传花停止, 这个时候花在谁手里,谁就退出圆圈结束游戏。重复这个过程,直到只剩一个孩子(胜者)。


输入: (['John','Jack','Camila','Ingrid','Carl'] , 7)

输出:Camila在击鼓传花游戏中被淘汰。 Jack在击鼓传花游戏中被淘汰。 Carl在击鼓传花游戏中被淘汰。 Ingrid在击鼓传花游戏中被淘汰。 胜利者: John

About

Data Structures and Algorithms JavaScript Implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published