原创 用LV解决Hanoi问题(续)

2007-2-8 14:41 3084 3 3 分类: 测试测量

        上一篇我还说LV不能做递归,今天在网上猛然看到一篇文章就是说用LV实现递归调用的,作者是相当牛的牛人,看后才知道原来LV的递归实现不能简单的静态调用自己的VI就可以了,需要动态调用(这个我以前用过,相当好用的一个东西,以后文章再讲了),另外还要设定VI的可重用性(Reentrant)。


        他的文章如下链接: 在 LabVIEW 中实现 VI 的递归调用


        经过指点之后,我将Hanoi又重新用递归的方式写了一下,程序附在附件上了。经过比较,可以看到,递归虽然写得非常简单,但是它最大得缺点就是效率低;像我现在1G得内存,1.6G Core 2得本本,用8.2编完这个程序,用11个盘子计算,也花了机器大概1分钟左右的时间,而且还很可能造成死机。


        根据算法,一般的递归都可以用Loop来代替,如果实在不能代替,也可以用Stack数据结构来实现,因此递归并非LV所提倡的编程方式,但是还是很值得玩味一番的。


        程序如下:(版本 8.2)


        rar

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /3 下一条