首页 > 其他 > 详细

栈与队列

时间:2019-06-20 20:48:53      阅读:111      评论:0      收藏:0      [点我收藏+]
一. JS数据结构实现: 栈和队列
1). 栈与队列的理解
栈: 遵循后进先出(LIFO)原则的有序集合。新添加的或是待删除的元素都保存在栈顶,而另一端我们称作栈底。(压栈)
队列: 遵循先进先出(FIFO)原则的有序集合,队列从尾部添加新元素,从顶部移除元素

2). 栈与队列的行为
1. 栈
push(element): 添加一个或是几个新元素到栈顶
pop(): 移除栈顶的元素,同时返回被移除元素
peek(): 返回栈顶的元素,但并不对栈顶的元素做出任何的修改
size(): 返回栈的元素个数
isEmpty(): 检查栈内是否有元素,如果有返回true,没有返回false
clear(): 清除栈里的元素
2. 队列
enqueue(element): 向队列尾部添加一个(或是多个)元素。
dequeue(): 移除队列的第一个元素,并返回被移除的元素。
front(): 返回队列的第一个元素——最先被添加的也是最先被移除的元素。队列不做任何变动。
size(): 返回队列的长度。
isEmpty(): 检查队列内是否有元素,如果有返回true,没有返回false
clear(): 清除队列里的元素

## 3). 自定义栈
 (function (window) {
    
      let items = []
    
      function Stack() {
    
      }
    
      Stack.prototype.push = function (el) {
        items.push(el)
      }
    
      Stack.prototype.pop = function () {
        return items.pop();
      }
    
      Stack.prototype.peek = function () {
        return items[items.length - 1]
      }
    
      Stack.prototype.size = function () {
        return items.length
      }
    
      Stack.prototype.isEmpty = function () {
        return items.length === 0
      }
    
      Stack.prototype.clear = function () {
        items = []
      }
    
      Stack.prototype.toString = function () {
        return items.toString() + ‘ ‘ + ‘Stack‘
      }
    
      window.Stack = Stack
    
    })(window)


4). 自定义队列
(function (window) {
    
      let items = []
    
      function Queue() {
    
      }
    
      Queue.prototype.enqueue = function (el) {
        items.push(el)
      }
    
      Queue.prototype.dequeue = function () {
        return items.shift()
      }
    
      Queue.prototype.front = function () {
        return items[0]
      }
    
      Queue.prototype.size = function () {
        return items.length
      }
    
      Queue.prototype.isEmpty = function () {
        return items.length === 0
      }
    
      Queue.prototype.clear = function () {
        items = []
      }
    
      Queue.prototype.toString = function () {
        return items.toString() + ‘ ‘ + ‘Queue‘
      }
    
      window.Queue = Queue
    
    })(window)
    
    
const obj1 = {}
const obj2 = {}
const obj3 = {}

obj1.next = obj2
obj2.next = obj3

 

栈与队列

原文:https://www.cnblogs.com/baixiaoxiao/p/11061105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!