
数据结构(JavaScript版)
文章平均质量分 53
程序媛小y
一枚前端程序媛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JavaScript数据结构:二分查找
JavaScript数据结构:二分查找 function binarySearch(items, item) { //二分查找要求数组是有序的 items.sort(); var low = 0, high = items.length - 1, mid, elem; while(low <= high) { mid = Math.floor((low+high)/2); elem = items[mid]; if(elem < i原创 2022-02-28 19:08:26 · 421 阅读 · 2 评论 -
javaScript数据结构:排序算法的实现
javaScript数据结构:排序算法的实现 1.冒泡排序 bubbleSort : O(n^2) 原理: 从左到右,相邻元素进行比较,如果前一个元素值大于后一个元素值(正序),则交换,这样一轮下 来,将最大的数在最右边冒泡出来。这样一轮一轮下来,最后实现从小到大排序。 Array.prototype.bubbleSort = function() { //console.log(this);//这里的this就是自己的数组,比如这里输出的是[ 5, 4, 3, 2, 1 ] for(let i =原创 2022-02-28 19:07:41 · 622 阅读 · 2 评论 -
javaScript数据结构:堆的建立&&堆排序
javaScript数据结构:堆 满足下面两个条件的就是堆: 堆是一个完全二叉树 堆上的任意节点值都必须大于等于(大顶堆)或小于等于(小顶堆)其左右子节点值 如果堆上的任意节点都大于等于子节点值,则称为 大顶堆 如果堆上的任意节点都小于等于子节点值,则称为 小顶堆 也就是说,在大顶堆中,根节点是堆中最大的元素;在小顶堆中,根节点是堆中最小的元素; 插入式建堆 插入节点: 将节点插入到队尾 自下往上堆化: 将插入节点与其父节点比较,如果插入节点大于父节点(大顶堆)或插入节点 小于父节点(小顶堆),则插原创 2022-02-28 09:56:36 · 795 阅读 · 2 评论 -
javaScripts数据结构:dfs&&bfs
javaScripts数据结构:dfs&&bfs dfs const graph = { 0: [1, 2], 1: [2], 2: [0, 3], 3: [3] }; const visited = new Set(); const dfs = (n) => { console.log(n); visited.add(n); graph[n].forEach(c => { if(!visited.has(c)){ dfs(c);原创 2022-02-27 21:09:35 · 109 阅读 · 0 评论 -
JavaScript数据结构:队列
JavaScript数据结构:队列 enqueue(element):向队列尾部添加一个(或多个)新的项。 dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。 front():返回队列中第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息——与Stack类的peek方法非常类似)。 isEmpty():如果队列中不包含任何元素,返回true,否则返回false。 size():返回队列包含的元素个数,与数组的length属性类似。原创 2022-02-27 19:22:48 · 162 阅读 · 0 评论 -
javaScript数据结构:栈
javaScript数据结构:栈 push(element): 添加一个新元素到栈顶位置. pop():移除栈顶的元素,同时返回被移除的元素。 peek():返回栈顶的元素,不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)。 isEmpty():如果栈里没有任何元素就返回true,否则返回false。 clear():移除栈里的所有元素。 size():返回栈里的元素个数。这个方法和数组的length属性很类似。 // 栈类 function Stack() { // 栈中的属性原创 2022-02-27 19:20:23 · 434 阅读 · 0 评论 -
Javascript数据结构:集合
Javascript数据结构:集合 其实集合你可以将它看成一种特殊的数组. 特殊之处在于里面的元素没有顺序, 也不能重复. 没有顺序意味着不能通过下标值进行访问, 不能重复意味着相同的对象在集合中只会存在一份. 创建集合类 // 封装集合的构造函数 function Set() { // 使用一个对象来保存集合的元素 this.items = {} // 集合的操作方法 } 操作的方法 add(value):向集合添加一个新的项。 remove(value):从集合移原创 2022-02-27 18:57:56 · 108 阅读 · 0 评论 -
JavaScript数据结构:二叉搜索树
文章目录创建二叉搜索树二叉搜索树的操作insert(key):先序遍历中序遍历后序遍历最大值&最小值搜索特定的值删除节点删除节点的思路 创建二叉搜索树 // 创建BinarySearchTree function BinarySerachTree() { // 创建结点构造函数 function Node(key) { this.key = key this.left = null this.right = null }原创 2022-01-11 13:18:50 · 506 阅读 · 2 评论 -
JavaScript数据结构:单链表与双向链表
文章目录创建链表类链表常见操作:增删改查append(element):toString()insert(position, element):indexOf(element):get(positon):updata(position,element):removeAt(position):remove(element):isEmpty():size():双向链表双向链表介绍双向链表的封装双向链表常见操作:增删改查append(element):forwardString():backwardString(原创 2022-01-10 18:43:02 · 427 阅读 · 2 评论