ggggqqqqihc 发表于 2013-1-27 05:31:15

用Ruby把那个O(1)栈做了一下

刚才没什么事,决定试试用新学的Ruby把那个O(1)栈的问题做了一下。写着是挺快,一口气就下来了,只是代码里带着明显的C++气味。唉,习惯不是一两天就能改的。
代码和C++的差不多长。主要还是不习惯Ruby的思维,再加上那个C++代码中用了很多STL的东西,已经相当精简了。
class Stackclass Pairdef initialize(first, second)@first=first@second=secondendattr_reader :first, :secondenddef initialize@stack=Array.new@minimum=nilenddef push(e)if @stack.empty? then@minimum=eend@stack.push(Pair.new(e,@minimum))if e<@minimum then@minimum=eendreturn selfenddef popnode=@stack.pop@minimum=node.secondif @stack.empty? then@minimum=nilendreturn selfenddef minreturn @minimumendend 
页: [1]
查看完整版本: 用Ruby把那个O(1)栈做了一下