估计大家都做过:
编一个程序检查输入文本中 { 和 } 是否配对,用什么数据类型最佳。
答案是:堆栈。
我觉得用整型就可以。初始赋值0,左括号+1,右括号—1。当整个过程中该整数都>=0且最后等于0,则配对。
大家说呢?
13 个解决方案
#1
同意
#2
好看法!
#3
老师的意思是不是用堆栈不仅仅用来计数,而是用来作些别的更多的东西,例如最简单的
大家都做过那个中缀转后缀的程序,那个程序我觉得利用栈是很必要的,如果是简简单单的
计数,当然是楼主说的最简单了,而且效率最好
大家都做过那个中缀转后缀的程序,那个程序我觉得利用栈是很必要的,如果是简简单单的
计数,当然是楼主说的最简单了,而且效率最好
#4
up is right .
老师主要是要我们练习stack的性质和用途,重在理解。
老师主要是要我们练习stack的性质和用途,重在理解。
#5
是否配对还有问题要考虑的
例如在注释中的{和}就不应该计算在内的
例如在注释中的{和}就不应该计算在内的
#6
对注释中的{和} 如用stack 也要也要加控制。
我觉得如果不对入栈的item进行操作的话,用top的控制和用数是一样的。
这样理解对吗?
我觉得如果不对入栈的item进行操作的话,用top的控制和用数是一样的。
这样理解对吗?
#7
很妙!
#8
楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
#9
你的想法很好,如果仅仅检查符号是否正确完全可以照你这样.
我想你们老师让用栈,是有道理的,这是为了你程序进一步的扩充打基础的.
如果你的程序之后还要计算表达式的值呢,你还可以用你的方法完成吗.
不过你的想法很好的.编程就是要这样的.
我想你们老师让用栈,是有道理的,这是为了你程序进一步的扩充打基础的.
如果你的程序之后还要计算表达式的值呢,你还可以用你的方法完成吗.
不过你的想法很好的.编程就是要这样的.
#10
如果只匹配一种括号,当然可以用楼主的法子。
倘若要判断{} [] ()是否匹配,用堆栈是比较明智的。
倘若要判断{} [] ()是否匹配,用堆栈是比较明智的。
#11
回Solstice:
我同意。
这种情况是比较负责,要考虑括号的嵌套。
用栈也为之后的功能扩展提供了可能。
谢谢大家
我同意。
这种情况是比较负责,要考虑括号的嵌套。
用栈也为之后的功能扩展提供了可能。
谢谢大家
#12
思维当然是不能受限制的,楼主你这个是好想法呀。
鼓励!
没什么不对的。
鼓励!
没什么不对的。
#13
jasonwl(每天一杯茶) ( ) 信誉:100 2003-02-28 15:52:00 得分:0
楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
-----------------------------------------------------
同意。今年苏州大学考研和2000的中程都考过
如果你有很多层(n)括号,你是不是要设 >n个整型变量呢?
你怎么能够预料会碰到多少个括号呢?
楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
-----------------------------------------------------
同意。今年苏州大学考研和2000的中程都考过
如果你有很多层(n)括号,你是不是要设 >n个整型变量呢?
你怎么能够预料会碰到多少个括号呢?
#1
同意
#2
好看法!
#3
老师的意思是不是用堆栈不仅仅用来计数,而是用来作些别的更多的东西,例如最简单的
大家都做过那个中缀转后缀的程序,那个程序我觉得利用栈是很必要的,如果是简简单单的
计数,当然是楼主说的最简单了,而且效率最好
大家都做过那个中缀转后缀的程序,那个程序我觉得利用栈是很必要的,如果是简简单单的
计数,当然是楼主说的最简单了,而且效率最好
#4
up is right .
老师主要是要我们练习stack的性质和用途,重在理解。
老师主要是要我们练习stack的性质和用途,重在理解。
#5
是否配对还有问题要考虑的
例如在注释中的{和}就不应该计算在内的
例如在注释中的{和}就不应该计算在内的
#6
对注释中的{和} 如用stack 也要也要加控制。
我觉得如果不对入栈的item进行操作的话,用top的控制和用数是一样的。
这样理解对吗?
我觉得如果不对入栈的item进行操作的话,用top的控制和用数是一样的。
这样理解对吗?
#7
很妙!
#8
楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
#9
你的想法很好,如果仅仅检查符号是否正确完全可以照你这样.
我想你们老师让用栈,是有道理的,这是为了你程序进一步的扩充打基础的.
如果你的程序之后还要计算表达式的值呢,你还可以用你的方法完成吗.
不过你的想法很好的.编程就是要这样的.
我想你们老师让用栈,是有道理的,这是为了你程序进一步的扩充打基础的.
如果你的程序之后还要计算表达式的值呢,你还可以用你的方法完成吗.
不过你的想法很好的.编程就是要这样的.
#10
如果只匹配一种括号,当然可以用楼主的法子。
倘若要判断{} [] ()是否匹配,用堆栈是比较明智的。
倘若要判断{} [] ()是否匹配,用堆栈是比较明智的。
#11
回Solstice:
我同意。
这种情况是比较负责,要考虑括号的嵌套。
用栈也为之后的功能扩展提供了可能。
谢谢大家
我同意。
这种情况是比较负责,要考虑括号的嵌套。
用栈也为之后的功能扩展提供了可能。
谢谢大家
#12
思维当然是不能受限制的,楼主你这个是好想法呀。
鼓励!
没什么不对的。
鼓励!
没什么不对的。
#13
jasonwl(每天一杯茶) ( ) 信誉:100 2003-02-28 15:52:00 得分:0
楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
-----------------------------------------------------
同意。今年苏州大学考研和2000的中程都考过
如果你有很多层(n)括号,你是不是要设 >n个整型变量呢?
你怎么能够预料会碰到多少个括号呢?
楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
-----------------------------------------------------
同意。今年苏州大学考研和2000的中程都考过
如果你有很多层(n)括号,你是不是要设 >n个整型变量呢?
你怎么能够预料会碰到多少个括号呢?