• JavaScript数据结构与算法(一) 栈的实现


    TypeScript版本源码

     1 class Stack {
     2     items = [];
     3     public push(element) {
     4         this.items.push(element);
     5     }
     6     public pop() {
     7         return this.items.pop();
     8     }
     9     public peek() {
    10         return this.items[this.items.length - 1];
    11     }
    12     public isEmpty() {
    13         return this.items.length == 0;
    14     }
    15     public size() {
    16         return this.items.length;
    17     }
    18     public clear() {
    19         this.items = [];
    20     }
    21     public print() {
    22         console.log(this.items.toString());
    23     }
    24 }

    TypeScript版本调用

     1 // 使用Stack类
     2 // 验证一下栈是否为空
     3 let stack = new Stack();
     4 console.log(stack.isEmpty());       // => true
     5 
     6 // 往栈添加元素
     7 stack.push(5);
     8 stack.push(8);
     9 
    10 // 查看栈里添加的最后一位元素
    11 console.log(stack.peek());          // => 8
    12 
    13 // 再添加一个元素
    14 stack.push(11);
    15 console.log(stack.size());          // => 3
    16 console.log(stack.isEmpty());       // => false
    17 
    18 // 再添加一个元素
    19 stack.push(15);
    20 
    21 // 下图描绘目前我们对栈的操作,以及栈的当前状态
    23 // 然后,调用两次pop方法从栈里移除2个元素: 24 25 stack.pop(); 26 stack.pop(); 27 console.log(stack.size()); // => 2 28 stack.print(); // => [5,8] 29 30 // 下图描绘目前我们对栈的操作,以及栈的当前状态

    JavaScript版本源码

     1 var Stack = (function () {
     2     function Stack() {
     3         this.items = [];
     4     }
     5     Stack.prototype.push = function (element) {
     6         this.items.push(element);
     7     };
     8     Stack.prototype.pop = function () {
     9         return this.items.pop();
    10     };
    11     Stack.prototype.peek = function () {
    12         return this.items[this.items.length - 1];
    13     };
    14     Stack.prototype.isEmpty = function () {
    15         return this.items.length == 0;
    16     };
    17     Stack.prototype.size = function () {
    18         return this.items.length;
    19     };
    20     Stack.prototype.clear = function () {
    21         this.items = [];
    22     };
    23     Stack.prototype.print = function () {
    24         console.log(this.items.toString());
    25     };
    26     return Stack;
    27 }());
  • 相关阅读:
    C#_获取汉字拼音
    C#中汉字轻松得到拼音全文类
    Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙
    ASP.NET的用户控件
    js获取url参数值
    常用编程软件下载地址
    Asp.net 程序优化js,css合并与压缩
    做BS开发,你应该知道的一些东西
    c#.net常用函数和方法集
    C# Lambda Expressions 简介
  • 原文地址:https://www.cnblogs.com/menu/p/6963125.html
Copyright © 2020-2023  润新知