数据结构例题
① 数据结构C语言版迷宫问题
刚学都这样,想当初我学习的时候连一个单链表的逆置,都要理解半天。编程就是把实际问题给抽象成数学或非数学模型,结合数据的表示,再找到解决的方法。别忘了,学习数据结构是为了更好的操作数据。
思路:
首先,迷宫如何用计算机语言表示?一般用二维数组。0表示墙,1表示路。
其次,其次就是如何从迷宫中走出来了。结合堆栈,进行搜索。
你可以尝试着对问题进行分层,然后逐步细化来解决。
如果你要解决一个别人给的走迷宫的问题,同样还是要这样,首先把别人给的迷宫在计算机中表示出来,其次结合数据结构所学的知识,找到通路,(关于结合数据结构的知识就看你自己的了,关键是对堆栈的了解)。
关于你说的,先看别人的程序,找到思路后自己才能编程问题。我看你是操之过急了,你得明白,知识的学习,首先就是会模仿,等你对整个课程有了系统的认识,你才会有自己的解题思路。创新是在有基础的前提下进行的。别人的东西,试着理解,毕竟许多东西单凭我们自己是不太可能想出来的,就像kmp算法一样(你应该马上就会学到)。
第一章说过,研究数据间的关系的目的是为了更好的操作数据,迷宫问题,可以说是一类“搜索”问题,更强调的是算法,即在精通堆栈的基础上想出一个利用堆栈对迷宫进行搜索的办法。而堆栈,则是基础,堆栈的操作就那么几个,学完马上就会用。关键是如何运用三种程序设计方法再结合某些数据结构设计出一个算法。一步一步来吧。
对了,给你一个问题考虑考虑,“不用任何辅助变量”编写一个程序,逆置一个字符串试试。只给你一个参数:该参数就是指向字符串的指针。
你的最后问题问的就有点没头绪了,学习的过程并不是你想的那样的,不见得数据结构学完之后就能编写高质量程序,写程序和看程序是相辅相成的,写而不学则怠,学而不写则罔。可以尝试的写写,自己找不到思路可以看看别人是怎么想的,自己多做做总结。