关于JS中栈方法和队列方法

栈方法(后进先出)

  • 栈是一种 LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(叫做推入)和移除(叫做弹出),只发生在一个位置——栈的顶部。ECMAScript 为数组专门提供了 push() 和 pop() 方法,以便实现类似栈的行为。


    20150101235414.png
            //创建一个空数组
            var colors = new Array();
            //推入两项
            var count = colors.push('red','green');
            console.log(colors);//red green
            //弹出最后一项
            var item = colors.pop();
            console.log(colors);//red
            //创建一个数组
            var colors = ['blue','yellow','green'];
            //推入一个值
            colors[3]='black';
            //用push推入一个值
            colors.push('orange');
            console.log(colors);//["blue", "yellow", "green", "black", "orange"]
            //弹出最后一个值
            var cp=colors.pop();
            console.log(colors);//["blue", "yellow", "green", "black"]
            alert(cp);//orange

以上代码中的数组可以看成是栈(代码本身没有任何区别,而 push() 和 pop() 都是数组默认的方法)。

队列方法

队列数据结构的访问规则是 FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。结合使用 shift() 和 push() 方法,可以像使用队列一样使用数组。


20150101235139.png
    var colors = new Array(); //创建一个数组
            var count = colors.push("red", "green"); //推入两项
           //alert(count); //2
          //再添加一个值
            count= colors.push('black');
            var item = colors.shift();
            alert(item);
            console.log(colors);

unshift()

ECMAScript 还为数组提供了一个 unshift() 方法。
在数组前端添加任意个项并返回新数组的长度.
因此,同时使用 unshift() 和 pop() 方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项,如下面的例子所示。

    var colors = ['green','blue','yellow'];
            var us = colors.unshift('black');
            console.log(colors);  //["black", "green", "blue", "yellow"] 
            var p = colors.pop();
            console.log(colors);  //["black", "green", "blue"]
            alert(p);//yellow
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容