好好学习数据结构

前几天信息满满的参加了个实习的面试,没想到技术面就跪了,原因就是面试官让我手写一个双向链表的程序。。。唉从这时深刻意识到数据结构的重要性,从现在起要好好学,希望能以博客的形式来记录学习历程,也作为一个督促我学习的方式吧。希望能在秋招时可以大展身手,或许塞翁失马焉知非福就是这样吧。

这段时间也看了好些关于数据结构的学习方法,尤其是今晚看到一个论坛里的帖子,楼主总结了自己的经验,让我觉得挺受启发,简单摘录一些作为记录。

帖子地址是:http://cskaoyan.com/thread-77099-1-1.html,下面是部分摘录。


数据结构其实就是人脑中的三种逻辑模式:先后关系(线性表)、层次关系(树)、交互关系(图)如何用计算机存储模式(顺序存储、链式存储)来实现。在这个过程中需要考虑两个问题:

1、这种存储如何同人脑中的思维达到融合,方便人解决问题

2、数据存储的目的和意义在于数据访问,数据访问决定数据存储。因此,访问速率和存储速率必须有所取舍

算法,则是计算机解题模式,无非是存取,计算,顺序执行,跳转,迭代和递归等

在这里推荐掌握下面几个算法:

1、将两个有序表合并为一个表,这个算法的变种很多,顺序表和链式表都可以,涉及集合运算,归并排序,字符串处理等。

2、将一个顺序表的元素重新划分,左边的较小,右边的较大,涉及快速排序,求字符串的逆串等

3-5、前序线索化,递归实现,栈模拟递归,非栈式迭代实现,以及中序,后序

6、深度优先遍历

7、广度优先遍历

8、最小生成树:Prim算法,Kruskal算法

9、最短路径:Dijkstra算法,Floyd算法

10、AOV:拓扑排序的DFS,BFS实现

11、AOE:关键路径


递归算法的设计关键:1、递归组合定义 2、最简单情形处理 3、用简单情形构造复杂情形            难点是相处递归组合

迭代算法的设计关键:1、迭代终止条件 2、规模最小情形 3、按一定次序访问        

迭代算法出错几率最大的地方是迭代终止条件错误,按序访问无法到达最小规模或超出最小规模。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值