Javascript完成基础的数据结构 一 栈

Javascript工程师,总会面临一个题目,数据构造和算法会成为本身的短板,不仅是对非科班,以至一些科班出身的工程师来讲也是本身的短板,因而就有了这系列文章。
基础决议深度,前端入门易,上升难题,学习曲线陡,许多时刻就是由于缺乏这些头脑。

本日完成的是最基础的数据构造之一 栈

栈在js中有着非常重要,基础范例会存储在栈中,你能够操纵现实的值。

要定义一个栈,起首须要邃晓,栈的基础构造有哪些,须要遵照哪些划定规矩。

栈是一个线性表,遵照着LIFO准绳的有序鸠合,也就是先进后出,先进入栈的元素,会储存在栈底,后进入的元素会放在栈顶,就像我们小时刻见过的粮仓一样,先进入的小麦被放在栈底。而且,栈只要一端是能够操纵的,就是栈顶。

function Stack() {
         
        }

起首建立一个函数(对象)示意栈。
let items = [];
然后须要建立一个数组来保留须要保留的元素。

  this.push = function(element) {
                items.push(element)
            }//挪用数组的push要领,将元素到场栈
            this.pop = function() {
                return items.pop();
            }//挪用数组的pop要领移除栈顶元素而且返回该元素
            this.peek = function() {
                return items[items.length - 1]
            }//挪用数组的peek要领,返回栈顶的第一个元素也就是全部栈的末了一个元素。
            this.isEmpty = function() {
                return items.length == 0;
            }//搜检栈是否是为空的,返回布尔值            
            this.size = function() {
                return items.length;
            }//返回栈的长度
            this.clear = function() {
                items = [];
            }//删除栈中一切的元素
            this.print = function() {
                console.log(items.toString)
            }//打出栈一切的元素

接下来须要给栈定义要领

  function Stack() {
            let items = [];
            this.push = function(element) {
                items.push(element)
                console.log(this)
            }
            this.pop = function() {
                return items.pop();
            }
            this.peek = function() {
                return items[items.length - 1]
            }
            this.isEmpty = function() {
                return items.length == 0;
            }
            this.size = function() {
                return items.length;
            }
            this.clear = function() {
                items = [];
            }
            this.print = function() {
                console.log(items.toString())
            }
        }

如许就简朴的建立了栈

接下来须要试一下栈的基础功能

  let stack = new Stack();定义一个新的对象
  console.log(stack.__proto__)//__proto__即是prototype.constructor

《Javascript完成基础的数据结构 一 栈》

栈就如许建立完成了。

    原文作者:josexiaohang
    原文地址: https://segmentfault.com/a/1190000009411275
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞