javascript 数据结构与算法
奇遇世界
Late in autumn
展开
-
1、数组
1、创建数组: var numArr = []; var numArr = new Array(); var numArr = [1, 2, 3]; var numArr = new Array(1, 2, 3); 调用Array构造函数时,可以只传入一个参数,用来指定数组的长度: var numArr = new Array(10); console.log(numArr.length...原创 2017-01-01 18:05:09 · 918 阅读 · 0 评论 -
13、集合
// 集合是一种包含不同元素的数据结构。集合中的成员是无序的,集合不允许相同的成员存在。 function Set(){ this.dataStore = []; this.add = add; this.remove = remove; this.size = size; // 并集:将两个集合中的成员进行合并,得到一个新集合 this.union = union;原创 2017-01-05 21:59:38 · 393 阅读 · 0 评论 -
12、线性探测法解决散列表保存字典的碰撞问题
function HashTable(){ this.table = new Array(137); this.values = new Array(); this.hashFunc = hashFunc; this.showDistro = showDistro; this.put = put; this.get = get; } function put(key, data){原创 2017-01-05 01:06:58 · 484 阅读 · 0 评论 -
11、线性探测法解决散列表碰撞问题
function HashTable(){ this.table = new Array(137); this.hashFunc = hashFunc; this.showDistro = showDistro; this.put = put; this.get = get; } function put(data){ var pos = thi原创 2017-01-05 00:39:05 · 1012 阅读 · 0 评论 -
9、开链法解决散列表碰撞问题
// 散列法(Hashing)或哈希法是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法。由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来在数据库中建立索引并进行搜索,同时还用在各种解密算法中。 // 散列函数先计算字符串中各字符的ASCII码值,求和时每次要乘以一个质数后得到一个散列值,作为散列数组的索引。 // 开链法解决碰原创 2017-01-04 21:52:28 · 716 阅读 · 0 评论 -
10、开链法解决散列表保存字典的碰撞问题
function HashTable(){ this.table = new Array(137); this.hashFunc = hashFunc; this.showDistro = showDistro; this.buildChains = buildChains; this.put = put; this.get = get; } function put(key, da原创 2017-01-04 21:55:48 · 479 阅读 · 0 评论 -
8、字典
function Dictionary(){ this.dataStore = new Array(); this.add = add; this.find = find; this.remove = remove; this.showAll = showAll; this.count = count; this.clear = clear; } function add(key,原创 2017-01-03 21:23:36 · 402 阅读 · 0 评论 -
7、双向链表
var log = console.log; function Node(element){ this.element = element; this.next = null; this.previous = null; } function LList(){ this.head = new Node("head"); this.find = find; this.findLast原创 2017-01-03 17:23:20 · 403 阅读 · 0 评论 -
6、单向链表
function LinkedList() { function Node(element) { this.element = element; this.next = null; } let length = 0; let head = null; this.append = (element) => { ...原创 2017-01-02 22:45:17 · 488 阅读 · 0 评论 -
5、简单队列、优先队列
一、简单队列 function Queue() { let items = []; this.enqueue = element => { items.push(element); } this.dequeue = () => { return items.shift(); } this.fron...原创 2017-01-02 17:22:47 · 463 阅读 · 0 评论 -
4、栈
栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,被称为一种后进先出(LIFO)的数据结构。 push():入栈 pop():出栈 peek():只返回栈顶元素,而不删除它 function Stack() { let items = []; this.push = element => { items.push(element); }...原创 2017-01-02 12:33:11 · 323 阅读 · 0 评论 -
3、列表
function List(){ this.listSize = 0; this.pos = 0; this.dataStore = []; this.clear = clear; this.find = find; this.toString = toString; this.insert = insert; thi原创 2017-01-01 22:59:31 · 489 阅读 · 0 评论 -
2、二维数组与对象数组
// 创建二维数组 Array.matrix = function(numrows, numcols, initial){ var arr = []; for(var i=0; i var columns = []; for(var j=0; j columns[j] = initial; }原创 2017-01-01 20:32:27 · 2254 阅读 · 0 评论 -
14、二叉树
function Node(data, left, right){ this.data = data; this.left = left; this.right = right; this.show = show; } function show(){ return this.data; } function BST(){ this.root = null; this.inser原创 2017-01-09 15:36:51 · 455 阅读 · 0 评论