随笔分类 -  JS数据结构与算法

摘要:二叉树结构图: 树顶部的节点是根节点,有子元素的节点叫做内部节点,没有子元素的节点叫做外部节点或叶节点 节点和它的子节点称为子树 节点左侧存储小值,节点右侧存储大值 使用js实现二叉树结构,待实现功能如下: insert(key) 向树中插入新的键 search(key) 在树中查找一个键,如果节点 阅读全文
posted @ 2021-10-25 12:15 邢韬 阅读(313) 评论(0) 推荐(0) 编辑
摘要:字典 字典和集合很相似,集合以[值,值]的形式存储元素,字典则是以[键,值]的形式来存储元素 实现Dictionary function defaultToString(item){ // 将键转化为字符串 if(item null){ return 'NULL' }else if(item und 阅读全文
posted @ 2021-08-10 22:52 邢韬 阅读(982) 评论(0) 推荐(0) 编辑
摘要:散列表 散列表也称哈希表,散列算法的作用是尽可能快地在数据结构中找到一个值。 如果要在数据结构中获得一个值,需要迭代整个数据结构来找到它。如果使用散列函数,就知道值的具体位置,因此能够快速检索到该值。 散列函数的作用是给定一个键值,然后返回值在表中的地址。 loselose散列函数 下图为常见的散列 阅读全文
posted @ 2021-08-10 22:02 邢韬 阅读(619) 评论(0) 推荐(0) 编辑
摘要:set是集合 集合是由一组无序且唯一(即不能重复)的项组成的。该数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中 构建set 1 class set{ 2 constructor(){ 3 this.items = {} 4 } 5 has(element){ 6 return 阅读全文
posted @ 2021-08-04 15:44 邢韬 阅读(551) 评论(0) 推荐(0) 编辑
摘要:链表 链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成 如下图: 相对于传统的数组,链表的一个好处在于,添加或移除元素的时候不需要移动其他元素。然而,链表需要使用指针,因此实现链表时需要额外注 阅读全文
posted @ 2021-08-02 15:41 邢韬 阅读(56) 评论(0) 推荐(0) 编辑
摘要:围成一圈传花,传到某个位置时,淘汰这个人,最终留下者为胜利者 使用的队列(先进先出) 1 function hotPotato(elementList, num){ 2 /* 3 * elementList 参与人员(数组) 4 * num 淘汰位置 5 */ 6 const queue = new 阅读全文
posted @ 2021-07-30 14:17 邢韬 阅读(301) 评论(0) 推荐(0) 编辑
摘要:栈 遵循后进先出原则的有序集合。新添加的元素或待删除的元素都保存在栈的同一端,称为栈顶,另一端为栈底,在栈中,新元素都靠近栈顶,旧元素都靠近栈底 1 class Stack{ 2 constructor(){ 3 this.count = 0 4 this.items = [] 5 } 6 push 阅读全文
posted @ 2021-07-29 16:26 邢韬 阅读(38) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示