JavaScript 数据结构
来源:互联网 发布:api接口 java 编辑:程序博客网 时间:2024/06/05 19:20
二进制转化成十进制
function decToBinary(decNumber) { var stack = [], binary = "", variable; while (decNumber > 0) { variable = Math.floor(decNumber % 2) stack.push(variable); decNumber = Math.floor(decNumber / 2); } while (stack.length){ binary += stack.pop(); } return binary; }
任意进制的转化
function transformNumber(number , type) { var stack = [], variable, digits = "0123456789ABCDEF", handleNumber = ""; while (number > 0) { variable = Math.floor(number % type); stack.push(variable); number = Math.floor(number / type); } while(stack.length != 0) { handleNumber += digits[stack .pop()] } return handleNumber; }
5.链表
访问链表中间的一个元素需要从表头迭代到该元素。
6.集合
集合方法的一些实现方式如下:
function Set() { let items = {}; //元素是否存在于集合 this.has = function (ele) { // return ele in items; return items.hasOwnProperty(ele); }; //添加元素 this.add = function (ele) { if(!this.has(ele)) { items[ele] = ele; return true } return false; }; //移除某个元素 this.remove = function (ele) { if(this.has(ele)) { delete items[ele]; return true; } return false; }; //清除集合 this.clear = function () { items = {}; }; //返回集合的大小 this.size = function () { return Object.keys(items).length; } //返回集合的大小 this.sizeLegacy = function () { let count = 0; for(let key in items) { if(items.hasOwnProperty(key)) { ++count; } } return count; }; //返回所有元素的数组集合 this.values = function () { let values = []; for (let i = 0, key = Object.keys(items); i < key.length; i++) { values.push(items[key[i]]); } return values; } //并集 this.union = function (otherSet) { let unionSet = new Set(); let values = this.values(); for(let i = 0; i < values.length; i++) { unionSet.add(values[i]); } values = otherSet.values(); for(let i = 0; i < values.length; i++) { unionSet.add(values[i]); } return unionSet; } //交集 this.intersection = function (otherSet) { let intersectionSet = new Set(); let values = this.values(); for(let i = 0; i < values.length; i++) { if(otherSet.has(values[i])) { intersectionSet.add(values[i]); } } return intersectionSet; } //差集 this.difference = function (otherSet) { let differenceSet = new Set(); let values = this.values(); for(let i = 0; i < values.length; i++) { if(!otherSet.has(values[i])) { differenceSet.add(values[i]); } } return differenceSet; } //子集 this.subset = function (otherSet) { let values = this.values(); if(this.size < otherSet.size) { return false; } else { for (let i = 0; i < values.length; i++) { if(!otherSet.has(values[i])) { return false; } } } return true; } }
7.字典和散列表:以[键,值]储存数据
①字典和散列表略有不同,字典也称作映射。es6同样包含Map类的实现,即我们所说的字典
这里写代码片
阅读全文
0 0
- Javascript 数据结构
- 数据结构(Javascript)
- JavaScript 数据结构
- javascript数据结构
- JavaScript数据结构
- JavaScript 数据结构
- JavaScript基本数据结构
- JavaScript基本数据结构
- JavaScript基本数据结构(图)
- 二 JavaScript基本数据结构
- JavaScript基本数据结构 [2]
- JavaScript基本数据结构
- Javascript数据结构操作
- javascript 数据结构 之队列
- javascript 数据结构 之 单链表
- javascript 数据结构 list
- javascript数据结构和算法
- 【javascript数据结构】----数组
- 父子类静态代码块,非静态代码块,有参,无参构造方法等的执行顺序问题
- setprop log.tag.ant VERBOSE 打印tag ant level VERBOSE
- Java是什么
- CentOS 6.5系统安装配置图解教程
- 数据结构 之 堆(完全二叉树、大根堆、小根堆)
- JavaScript 数据结构
- Java中初始化对象的顺序,静态代码块的用法以及Static的用法详解
- MonthCalender控件使用方法
- 变态跳台阶
- JAVA | 34
- linux中一些基本命令(vi,查看系统版本,进程状态,cpu等)
- C++文件和流
- 通过python利用哈希值实现比较两个文件的一致性
- ROS&OpenCV进行摄像头数据的采集与订阅发布