zoukankan      html  css  js  c++  java
  • 数据结构与算法之Stack(栈)——in dart

    用dart 语言实现一个简单的stack(栈)。栈的内部用List实现。

     1 class Stack<E> {
     2   final List<E> _stack;
     3   final int capacity;
     4   int _top;
     5 
     6   Stack(this.capacity)
     7       : _top = -1,
     8         _stack = List<E>(capacity);
     9 
    10   bool get isEmpty => _top == -1;
    11   bool get isFull => _top == capacity - 1;
    12   int get size => _top + 1;
    13 
    14   void push(E e) {
    15     if (isFull) throw StackOverFlowException;
    16     _stack[++_top] = e;
    17   }
    18 
    19   E pop() {
    20     if (isEmpty) throw StackEmptyException;
    21     return _stack[_top--];
    22   }
    23 
    24   E get top {
    25     if (isEmpty) throw StackEmptyException;
    26     return _stack[_top];
    27   }
    28 }
    29 
    30 class StackOverFlowException implements Exception {
    31   const StackOverFlowException();
    32   String toString() => 'StackOverFlowException';
    33 }
    34 
    35 class StackEmptyException implements Exception {
    36   const StackEmptyException();
    37   String toString() => 'StackEmptyException';
    38 }
    39 
    40 void main() {
    41   var stack = Stack<int>(10);
    42   for (var i = 0; i < stack.capacity; i++) stack.push(i * i);
    43   print(stack.top);
    44 
    45   var sbuff = StringBuffer();
    46   while (!stack.isEmpty) sbuff.write('${stack.pop()} ');
    47   print(sbuff.toString());
    48 }
  • 相关阅读:
    跑路了
    *CTF 2019 quicksort、babyshell、upxofcpp
    pyspark如何遍历broadcast
    pwn易忘操作原理笔记
    pwn学习之四
    pwn学习之三
    pwn学习之二
    pwn学习之一
    2017GCTF部分writeup
    OD使用教程12
  • 原文地址:https://www.cnblogs.com/outerspace/p/10256667.html
Copyright © 2011-2022 走看看