当前位置: 首页 > news >正文

菜鸟的it之路-起航

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

  

  

转载于:https://www.cnblogs.com/HuSay/p/4870034.html

相关文章:

  • 10分钟掌握XML、JSON及其解析
  • WIN32编程经验总结
  • awk 内容
  • (算法)Game
  • Java Web项目的发布
  • 学习git遇到的问题的提出与总结
  • 鸡蛋的硬度
  • 百度基础技术测试部一面2015/10/15 实习生
  • 在C#中使用官方驱动操作MongoDB
  • Android 百度推送服务
  • ISG2015
  • Oracle常见SQL语句
  • Python模块Scrapy导入出错:ImportError: cannot import name xmlrpc_client
  • php的lareval框架配置出错
  • 九度OJ 1160:放苹果 (DFS)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2017年终总结、随想
  • in typeof instanceof ===这些运算符有什么作用
  • Invalidate和postInvalidate的区别
  • IP路由与转发
  • Javascripit类型转换比较那点事儿,双等号(==)
  • PAT A1092
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 不上全站https的网站你们就等着被恶心死吧
  • 电商搜索引擎的架构设计和性能优化
  • - 概述 - 《设计模式(极简c++版)》
  • 离散点最小(凸)包围边界查找
  • 力扣(LeetCode)22
  • 前端js -- this指向总结。
  • 使用SAX解析XML
  • 优化 Vue 项目编译文件大小
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 进程与线程(三)——进程/线程间通信
  • #NOIP 2014# day.2 T2 寻找道路
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (2)STM32单片机上位机
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (附源码)计算机毕业设计大学生兼职系统
  • (已解决)什么是vue导航守卫
  • (译)计算距离、方位和更多经纬度之间的点
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Core中Emit的使用
  • .NET是什么
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • @Builder用法
  • @font-face 用字体画图标
  • @KafkaListener注解详解(一)| 常用参数详解
  • [100天算法】-x 的平方根(day 61)
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [Android Studio] 开发Java 程序
  • [Android]使用Git将项目提交到GitHub
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [CF]Codeforces Round #551 (Div. 2)
  • [HTML]HTML5实现可编辑表格