数据结构与算法之Stack(栈)——in dart
用dart 语言实现一个简单的stack(栈)。栈的内部用List实现。
 class Stack<E> {
   final List<E> _stack;
   final int capacity;
   int _top;
   Stack(this.capacity)
       : _top = -1,
         _stack = List<E>(capacity);
   bool get isEmpty => _top == -1;
   bool get isFull => _top == capacity - 1;
   int get size => _top + 1;
   void push(E e) {
     if (isFull) throw StackOverFlowException;
     _stack[++_top] = e;
   }
   E pop() {
     if (isEmpty) throw StackEmptyException;
     return _stack[_top--];
   }
   E get top {
     if (isEmpty) throw StackEmptyException;
     return _stack[_top];
   }
 }
 class StackOverFlowException implements Exception {
   const StackOverFlowException();
   String toString() => 'StackOverFlowException';
 }
 class StackEmptyException implements Exception {
   const StackEmptyException();
   String toString() => 'StackEmptyException';
 }
 void main() {
   var stack = Stack<int>(10);
   for (var i = 0; i < stack.capacity; i++) stack.push(i * i);
   print(stack.top);
   var sbuff = StringBuffer();
   while (!stack.isEmpty) sbuff.write('${stack.pop()} ');
   print(sbuff.toString());
 }
数据结构与算法之Stack(栈)——in dart的更多相关文章
- 数据结构与算法之Stack(栈)的应用——用stack实现一个计算器-/bin/calc.dart
		
计算器的bin/calc.dart 可执行代码: import 'dart:io'; import 'package:data_struct/stack/sample/calculator.dart' ...
 - 数据结构与算法JavaScript (一) 栈
		
序 数据结构与算法JavaScript这本书算是讲解得比较浅显的,优点就是用javascript语言把常用的数据结构给描述了下,书中很多例子来源于常见的一些面试题目,算是与时俱进,业余看了下就顺便记录 ...
 - javascript实现数据结构与算法系列:栈 -- 顺序存储表示和链式表示及示例
		
栈(Stack)是限定仅在表尾进行插入或删除操作的线性表.表尾为栈顶(top),表头为栈底(bottom),不含元素的空表为空栈. 栈又称为后进先出(last in first out)的线性表. 堆 ...
 - 每周一练 之 数据结构与算法(Stack)
		
最近公司内部在开始做前端技术的技术分享,每周一个主题的 每周一练,以基础知识为主,感觉挺棒的,跟着团队的大佬们学习和复习一些知识,新人也可以多学习一些知识,也把团队内部学习氛围营造起来. 我接下来会开 ...
 - PHP 程序员学数据结构与算法之《栈》
		
“要成高手,必练此功”. 要成为优秀的程序员,数据结构和算法是必修的内容.而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈 ...
 - JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
		
前言 想写好前端,先练好内功. 栈内存与堆内存 .浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScri ...
 - 数据结构与算法之Stack(栈)的应用——in dart
		
参考教科书上的一个应用例子,用栈来分析一行输入中的括号brackets是否匹配.用stdin读取用户输入,并输出检查结果.exit 退出. 注意这行代码: import 'stack.dart';// ...
 - 数据结构与算法之Stack(栈)——重新实现
		
之前发过一篇stack的实现,是采用dart内置的List类并固定长度数组实现的.这里重新实现一版,重复利用List类内置特性和方法.实现更为简洁. class Stack<E> { fi ...
 - java数据结构和算法02(栈)
		
什么叫做栈(Stack)呢?这里的栈和jvm的java栈可不是一个东西... 栈作为一种数据结构,我感觉栈就类似一种接口,实现的话有很多种,比如用数组.集合.链表都可以实现栈的功能,栈最大的特点就是先 ...
 
随机推荐
- 运维监控---企业级Zabbix详解_【all】
			
基础LNMP环境搭建 Linux 下LNMP环境搭建 下载Zabbix 链接:https://pan.baidu.com/s/1n36esVyYAKstwnFopbV2sg 密码:izll 创建zab ...
 - 音乐MP4网站 车辆工程 冯大昕
 - Docker简介与搭建
			
Docker定义 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...
 - OpenCV&&python_图像平滑(Smoothing Images)
			
Goals 学习用不同低通滤波方法模糊图像(Blur imagess with various low pass filter) 用用定制的滤波器处理图像(Apply custom-made filt ...
 - 4、Python文件操作工具 xlsxwriter 工具
			
# _*_ encoding:utf-8 _*_ import xlsxwriter #创建xlsx后缀名的excelexcel = xlsxwriter.Workbook(r'D:\github\f ...
 - JAVAWEB之文件的上传下载
			
文件上传下载 文件上传: 本篇文章使用的文件上传的例子使用的都是原生技术,servelt+jdbc+fileupload插件,这也是笔者的习惯,当接触到某些从未接触过的东西时,总是喜欢用最原始的东西将 ...
 - 数据类型.md
			
数据类型 整型 数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) mediumint(m) 3个字 ...
 - 通过iframe标签绕过csp
			
iframe.php代码如下: allow-popups开启时,window.open就可以打开新的窗口. 看csp规则,默认是在当前域内,如果这是一个ctf题的话,就很简单了,window.loca ...
 - WEB安全 Sqlmap 中绕过空格拦截的12个脚本
			
图片较小,可以右键点击图片-->选择 "在新标签中打开图片" --> 查看大图 Sql 注入时遇到过滤空格时可以使用下面12个脚本尝试绕过,在实际利用中可以灵活修改.
 - USDT/BTC/ETC/HT的解释
			
USDT 泰达币 泰达币(USDT)是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD(下称USDT),1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换 ...