一个和老师意见不一样的问题

时间:2022-11-24 23:04:06
题目:
估计大家都做过:
编一个程序检查输入文本中 { 和 } 是否配对,用什么数据类型最佳。
答案是:堆栈。
我觉得用整型就可以。初始赋值0,左括号+1,右括号—1。当整个过程中该整数都>=0且最后等于0,则配对。
大家说呢?

13 个解决方案

#1


同意

#2


好看法!

#3


老师的意思是不是用堆栈不仅仅用来计数,而是用来作些别的更多的东西,例如最简单的
大家都做过那个中缀转后缀的程序,那个程序我觉得利用栈是很必要的,如果是简简单单的
计数,当然是楼主说的最简单了,而且效率最好

#4


up is right .
老师主要是要我们练习stack的性质和用途,重在理解。

#5


是否配对还有问题要考虑的
例如在注释中的{和}就不应该计算在内的

#6


对注释中的{和} 如用stack 也要也要加控制。
我觉得如果不对入栈的item进行操作的话,用top的控制和用数是一样的。
这样理解对吗?

#7


很妙!

#8


楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。

#9


你的想法很好,如果仅仅检查符号是否正确完全可以照你这样.
我想你们老师让用栈,是有道理的,这是为了你程序进一步的扩充打基础的.
如果你的程序之后还要计算表达式的值呢,你还可以用你的方法完成吗.
不过你的想法很好的.编程就是要这样的.

#10


如果只匹配一种括号,当然可以用楼主的法子。

倘若要判断{} [] ()是否匹配,用堆栈是比较明智的。

#11


回Solstice:
我同意。
这种情况是比较负责,要考虑括号的嵌套。
用栈也为之后的功能扩展提供了可能。
谢谢大家

#12


思维当然是不能受限制的,楼主你这个是好想法呀。
鼓励!
没什么不对的。

#13


jasonwl(每天一杯茶) ( ) 信誉:100  2003-02-28 15:52:00  得分:0 
 
 
  楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
-----------------------------------------------------
同意。今年苏州大学考研和2000的中程都考过
如果你有很多层(n)括号,你是不是要设 >n个整型变量呢?
你怎么能够预料会碰到多少个括号呢? 
 

#1


同意

#2


好看法!

#3


老师的意思是不是用堆栈不仅仅用来计数,而是用来作些别的更多的东西,例如最简单的
大家都做过那个中缀转后缀的程序,那个程序我觉得利用栈是很必要的,如果是简简单单的
计数,当然是楼主说的最简单了,而且效率最好

#4


up is right .
老师主要是要我们练习stack的性质和用途,重在理解。

#5


是否配对还有问题要考虑的
例如在注释中的{和}就不应该计算在内的

#6


对注释中的{和} 如用stack 也要也要加控制。
我觉得如果不对入栈的item进行操作的话,用top的控制和用数是一样的。
这样理解对吗?

#7


很妙!

#8


楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。

#9


你的想法很好,如果仅仅检查符号是否正确完全可以照你这样.
我想你们老师让用栈,是有道理的,这是为了你程序进一步的扩充打基础的.
如果你的程序之后还要计算表达式的值呢,你还可以用你的方法完成吗.
不过你的想法很好的.编程就是要这样的.

#10


如果只匹配一种括号,当然可以用楼主的法子。

倘若要判断{} [] ()是否匹配,用堆栈是比较明智的。

#11


回Solstice:
我同意。
这种情况是比较负责,要考虑括号的嵌套。
用栈也为之后的功能扩展提供了可能。
谢谢大家

#12


思维当然是不能受限制的,楼主你这个是好想法呀。
鼓励!
没什么不对的。

#13


jasonwl(每天一杯茶) ( ) 信誉:100  2003-02-28 15:52:00  得分:0 
 
 
  楼主,我觉得如果检查一个程序的挂号是否配对,那么你的方法完全正确.
但如果考虑其他的因素,如对挂号内的操作,那么应该是用堆栈比较合适。
清华版《数据结构》里面先讲了有关括号的配对,然后还有有关进行数据操作的问题,那么那个用整型就无法实现了,而堆栈能够进一步实现这些功能,所以老师才说用堆栈比较好吧。
以上是我的见解,不知道说的对不对。
-----------------------------------------------------
同意。今年苏州大学考研和2000的中程都考过
如果你有很多层(n)括号,你是不是要设 >n个整型变量呢?
你怎么能够预料会碰到多少个括号呢?