在本学期的数据结构课程中,我学到了许多数据的存储方式,例如栈和队列、图和树都是在高级语言程序设计中未曾学到的有用知识。相较c语言,数据结构更侧重关于存储方式的理解与应用,学习它们的性质,而c语言则更多学习代码的编写,两者都令我受益良多。
我对栈先进后出的固有特性比较感兴趣,因此较多使用栈来解决问题。例如老师在课堂上讲过的迷宫问题就可以用栈的方法来解决,其思路为:
while(堆栈不为空){
取出栈顶位置为当前位置;
如果 当前位置是终点,
则 使用堆栈记录的路径标记从起点至终点的路径;
否则{
按照从下、右、上、左的顺序将当前位置下一个可以探索的位置入栈;
如果 当前位置的四周均不通
则 当前位置出栈;
}
}
面对复杂的迷宫,用栈的特性记录迷宫的路径,利用栈的存与取完成在迷宫中的“行走”,这种方法令我大受震撼,印象深刻。这提醒我,遇到毫不相干的问题也可以用数据结构的思考方式来解决,或许会有大的突破。
在浏览了一些关于java的资料后,我明白java在集合框架、异常处理、文件与流等方面有所应用。我认为java等语言课程相较高数这类课程,更加注重平时代码的编写和实际的应用,不似高数偏重理论,java的学习光有理论是无法真正掌握的,只有去编写代码,去设计程序,才能够有效地学习这类课程。因此我希望能在新学期学习后,能设计出一个自己的小程序、小工具来印证我的学习成果。