之前在知乎上看见怎么学习数据结构下一位答主的回答,他引用了N.Wirth(沃斯)的话:程序=数据结构+算法。(哈,菜鸟无法验证这句话的正确性有多大)但毫无疑问的是,数据结构应当是一名菜鸟程序狗要重点学习的东西,是不可忽略的一部分。

所以,这篇随笔我将列出接下来一段时间我的数据结构学习计划-菜鸟的爬行路之数据结构:

菜鸟的爬行路之我的数据结构学习计划

  大体来讲,在学习数据结构的基础时,应当注重两件事:

按照quora上的大牛来讲就是,第一件事是试着把数据结构图形化,视觉化。在直觉上对于数据结构有个大致映像使用它是怎样的感受,抽象上和具体实现上是什么样子的.这就是最重要的事情.并且无论是对于简单的队列,栈还是天杀的平衡树都很重要而且有效.把数据结构画出来,在你的脑袋瓜里面就能想象出来,总之,你需要做的就是,直观的去了解这些数据结构.

那么第二件事就是学习什么时候用什么样的数据结构和算法,现在对我来说很难。不过可以使我认识到当真正处理到现实问题的时候或许才能掌握某些数据结构,比如哈希表.

接下来就是具体的实施步骤了。

  第一,找一二本优秀的数据结构书籍,看完一个数据结构就使用c#语言将它实现,不懂就借助搜索引擎查看其他人优秀的数据结构源码。值得注意的是要重点标记使自己困惑的地方,隔个一段时间,就拿出来再练习练习。

这是我接下来将用45天学习数据结构的知识点顺序:

学习使用顺序表-学习使用单链表-学习使用双向链表-使用循环链表-比较不同算法的算法效率

学习使用堆栈-用顺序栈解决堆栈-学习使用链栈解决堆栈

学习认识队列-学习使用顺序对列-学习使用链队列

学习认识串-学习使用顺序存储解决串

学习认识数组-学习使用特殊矩阵-学习使用稀疏矩阵

学习认识二叉树-学习使用二叉树的存储使用-学习使用二叉树的遍历方法及递归的实现-学习用二叉树解决快速搜素磁盘文件中记录的问题-认识最优二叉树-哈夫曼树

学习认识数-学习认识树的存储-学习数,森林与二叉树的转换-学习解决树和森林的遍历问题-应用数

认识图-学习用邻接矩阵解决图的编程问题-学习邻接表解决图的编程-学习解决图的遍历问题-学习图的最短路劲

认识排序-插入排序-选择排序-交换排序-归并排序-分配排序

线性表查找技术-哈希表查询计划

  第二对这些数据结构加以运用,可以在 google 上搜索“某个数据结构 + ACM”的题目-这些题目都是数据结构的运用,甚至有这些数据结构的变形。期间可以学到的数据结构和算法做小软件玩儿,例如压缩软件,五子棋之类的。

这些学习看完后,接着刷《算法导论》,当然这是几个月后的事了。以后再写

注:很多计划都是看了知乎上精华答案里而指定的。哈没事多逛逛知乎,还是会有收获的。

菜鸟的it之路-起航的更多相关文章

  1. JVM菜鸟进阶高手之路十(基础知识开场白)

    转载请注明原创出处,谢谢! 最近没有什么实战,准备把JVM知识梳理一遍,先以开发人员的交流来谈谈jvm这块的知识以及重要性,依稀记得2.3年前用solr的时候老是经常oom,提到oom大家应该都不陌生 ...

  2. JVM菜鸟进阶高手之路十三(等你来战!!!)

    转载请注明原创出处,谢谢! 前几天有个朋友问了我个问题,下面给大家分享下,希望大家积极在评论区进行评论留言,等你来战!!! 先来个趣味题,热身下,引出后面的jvm题目. 地上的影子是那个人的? 地上的 ...

  3. JVM菜鸟进阶高手之路十四:分析篇

    转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...

  4. 1.Magicodes.NET框架之路——起航

    1.Magicodes.NET框架之路--起航 前言 从事开发也好几年了,并且最近一直在做架构搭建的工作.这些时间,最大的感悟就是: 只有自己理解了的才是自己的. 对架构这块,若欲立之,必先破之. 故 ...

  5. JVM菜鸟进阶高手之路一[z]

    https://mp.weixin.qq.com/s/qD1LFmsOiqZHD8iZX97OfA? 问题现象 代码如下,使用 ParNew + Serial Old 回收器组合与使用 ParNew ...

  6. 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

    初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...

  7. JVM菜鸟进阶高手之路二(JVM的重要性,Xmn是跟请求量有关。)

    转载请注明原创出处,谢谢! 今天看群聊jvm,通常会问ygc合适吗? 阿飞总结,可能需要2个维度,1.单位时间执行次数,2.执行时间 ps -p pid -o etime 查看下进程的运行时间, 17 ...

  8. 一个编程菜鸟的进阶之路(C/C++)

    学编程是一条不归路,但我义无反顾.只能往前冲,知道这个过程是痛苦的,所以我开通这个博客,记录自己在编程中遇到的问题和心得,一是希望可以帮助跟我一样遇到同样问题的人,二是把这作为对自己的勉励及回忆:

  9. 菜鸟入门Linux之路(方法论浅谈)

    Linux是为人熟知的OS之王,已"统治"世界.要想学好绝非易事. 作为菜鸟,可以与Linux亲密接触的方法很多,如视频.书籍.各种企培资料等等,如今的在线教育也如火如荼. 总结说 ...

随机推荐

  1. 在Ubuntu虚拟机搭建数据库系统

    连接数据库: mysql -uroot -p 输入数据库密码即可登陆. 查看mysql版本信息: mysql> select version(); +---------------------- ...

  2. js动态添加-表格逐行添加、删除、遍历取值

    关于js对表格进行逐行添加,今天抽空整理了一下:新建一个html文件(没有编辑器的可以新建一个demo.txt文件,然后改后缀名为demo.html),把下面代码全部贴进去即可.功能包括:表格添加一行 ...

  3. 现代 PHP 新特性系列(三) —— Trait 概览

    Trait是PHP 5.4引入的新概念,看上去既像类又像接口,其实都不是,Trait可以看做类的部分实现,可以混入一个或多个现有的PHP类中,其作用有两个:表明类可以做什么:提供模块化实现.Trait ...

  4. 解Linux SSH命令大全,新手必看SSH命令

    下面介绍一些基本的常用的Linux SSH命令,都是一些很简单的Linux SSH命令,新手掌握了这几个,一般管理一般的vps或者linux主机就可以了!     我们的教程介绍了putty的使用方法 ...

  5. linux下用iptables做本机端口转发方法(转载)

    一 :从一台机到另一台机端口转发 启用网卡转发功能 #echo 1 > /proc/sys/net/ipv4/ip_forward 举例:从192.168.0.132:21521(新端口)访问1 ...

  6. python3 第十七章 - sequence(序列)

    之前我们在讲for循环语句时就提到过序列,那么什么是序列(sequence)? 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 —— 它的索引(位置),第一个索引是0,第二个索引 ...

  7. JDK 中的设计模式应用实例

      在 JDK(Java Development Kit)类库中,开发人员使用了大量设计模式,正因为如此,我们可以在不修改 JDK 源码的前提下开发出自己的应用软件.研究 JDK 类库中的模式实例也不 ...

  8. 使用jQuery的ajax调用action的例子

    直接使用ajax请求会比较繁琐,但是jQuery为我们提供了简单使用ajax的方法. 下面是一个在jQuery easyUI中,利用ajax请求,使下拉菜单关联文本框的例子.其中ajax请求就是8-1 ...

  9. ProgressDialog的使用及逻辑处理

    一般用的情况先声明一个ProgressDialog progressShow = true;(用来判断用户是否点击了取消键) final ProgressDialog pd = new Progres ...

  10. Docker for Web Developers目录

    在OpenStack在私有云占主导定位之后,后起之秀Docker在PaaS平台.CI/CD.微服务领域展露锋芒.作为Web Developers,我们有必要学习和掌握这门技术. 1. 运行第一个Doc ...