数据结构与算法之Stack(栈)的应用——in dart

Posted outerspace

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法之Stack(栈)的应用——in dart相关的知识,希望对你有一定的参考价值。

  参考教科书上的一个应用例子,用栈来分析一行输入中的括号brackets是否匹配。用stdin读取用户输入,并输出检查结果。exit 退出。

注意这行代码:

import ‘stack.dart‘;
// 需要与上一个Stack的例子在同一个文件夹下。
 1 import ‘dart:io‘;
 2 import ‘stack.dart‘;
 3 
 4 void main() {
 5   var ins = stdin.readLineSync();
 6   while (ins != ‘exit‘) {
 7     print(check(ins));
 8     ins = stdin.readLineSync();
 9   }
10 }
11 
12 bool check(String ins) {
13   var stack = Stack<String>(ins.length);
14   for (var i = 0; i < ins.length; i++) {
15     switch (ins[i]) {
16       case ‘{‘:
17       case ‘[‘:
18       case ‘(‘:
19         stack.push(ins[i]);
20         break;
21       case ‘)‘:
22         if (stack.isEmpty || stack.pop() != ‘(‘) return false;
23         break;
24       case ‘]‘:
25         if (stack.isEmpty || stack.pop() != ‘[‘) return false;
26         break;
27       case ‘}‘:
28         if (stack.isEmpty || stack.pop() != ‘{‘) return false;
29         break;
30       default:
31         break;
32     }
33   }
34   return stack.isEmpty;
35 }

 


以上是关于数据结构与算法之Stack(栈)的应用——in dart的主要内容,如果未能解决你的问题,请参考以下文章

java数据结构与算法之栈(Stack)设计与实现

java数据结构与算法之使用两个栈实现队列

数据结构与算法—栈stack

看动画学算法之:栈stack

数据结构与算法--栈(Stack)--JS

[ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 2442+1442)