首页 > 代码库 > Javascript - 栈 和 单链表
Javascript - 栈 和 单链表
最近在重温数据结构,于是写了一些代码玩玩,都是很初级的,表喷各位。。。。
function Stack() { this.dataStore = []; this.top = 0;}Stack.prototype = { length: function () { return this.top; }, push: function (element) { this.dataStore[this.top++] = element; return this.top; }, pop: function () { return this.dataStore[--this.top]; }, peek: function () { return this.dataStore[this.top - 1]; }, clear: function () { return this.top = 0; }};var stack = new Stack();console.log("length:" + stack.length());stack.push("huangjacky");stack.push("fiend");console.log("length:" + stack.length());while (stack.length() > 0) { var s = stack.pop(); console.log("element:" + s);}console.log("length:" + stack.length());function Node(element) { this.element = element; this.next = null;}function LinkList() { this.head = new Node("head");}LinkList.prototype = { insert: function (element, after) { var s = new Node(element); if (after == undefined) { //如果没有指定after,那么就直接插入到链表的最前面 s.next = this.head.next; this.head.next = s; return true; } else { var node = this.head; while (node != null) { if (node.element == after) { s.next = node.next; node.next = s; return true; } node = node.next; } } return false; }, remove: function (element) { var node = this.head; var preNode = null; while (node != null) { if (node.element == element) { preNode.next = node.next; return true; } preNode = node; node = node.next; } return false; }, find: function (element) { var node = this.head; while (node != null) { if (node.element == element) { break; } node = node.next; } return node; }, toString: function () { var s = ""; var node = this.head; while (node != null) { if (node.next == null) { s += node.element; } else { s += node.element + " --> "; } node = node.next; } return s; }};var l = new LinkList();l.insert("huangjacky");l.insert("fiend", "huangjacky");l.insert("jackyhuang", "fiend");l.insert("abc");var s = l.find("huangjacky");if (s) { console.log("next to huangjacky is :" + s.next.element);}l.remove("fiend");console.log("linklist is :" + l.toString());
Javascript - 栈 和 单链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。