大二|考研必看,你必须知道的关于数据结构的知识

01

我眼中的数据结构

数据结构是个很神奇的东西,从一开始就贯穿着我们的生活,没学计算机之前隐隐感受到了它的存在,但不可名说,学了计算机之后,才知原来他叫数据结构。

如穿衣而言。一件T恤,总共有四个口。 一个出头,一个收腰,两个出手臂。那其实这个T恤就是一个定义好的数据结构,整个T恤是一个节点(Node),Node有四块区域,分别存放上述信息。而我们自身就是被存放的数据。可以想像,不同的人穿同样样式的T恤,站在一起,这就是数据结构中的链表了(后续会有链表专门的文章)

再如寝室而言。可放床,可放柜子等等,这就是一个复杂的数据结构。 因为床和柜子还可再细分。依学校四人间的床来看,上面放垫絮。然后旁边是上下的梯子。同理四人间的柜子来看,上面可放书,桌面可放电脑。

 这个是复杂数据结构,寝室这个节点(Node)可以分成两个区域,第一个区域是床的链表,第二个区域是柜子的链表。床和链表也可看做是Node,里面再进行区域划分。

借上述两个例子,再放眼看我们身边的事物,是不是都有了不一样的色彩,对身边事物有了不同的看法,可在群里和小伙伴们一起交流

02

学校中的数据结构

学校一直重理论,在数据结构这门课程中有很多新的概念和知识点,如算法复杂度,链表,栈,队列,树,图等等,其中每种又可分为数组实现和链表实现。每种实现的增删改查的效率都不一样。其于基础的结构,还会根据需求做一些变形,如单向循环的链表,可以两边同时进出的队列,要高度一样的树,等等。

借句古语:万变不离其宗。从最基础的开始学,弄懂他们弄透彻他们,然后看要变的需求是什么,为了满足这种需求需要怎么变。

03

工作后的数据结构

工作之后的数据结构对学校中的数据结构做了封装和改造。算法细节都是封装好的,变成了一个实体类,实体类里对外暴露了方法。 调用相应的方法就可完成相应的操作。

如List:

public void showList(){
    List<Model> modelList = new ArrayList<>();
    //添加一个元素
    modeList.add(new Model());
    //判断List中是否包含某一个元素
    modeList.contains(model);
}

看起来是简单了,但实际上对数据结构的要求又提升了一步,因为平时写代码时就一个用户,几条数据,但在生产环境使用时,可能数万条数据,这时对数据结构的选择就尤为重要。用Vector还是ArrayList 还是LinkedList。等等,这些都需要在大学期间对数据结构课程有着很好的理解

04

如何学习这门课程


学习数据结构如同重新认识我们身边的世界。想一想我们在幼年时期是如何去探索这个世界?一双眼睛四处看,不停的到处爬,这碰碰那动动。学习数据结构也是如此。

1

多画图

 如上述的T恤的例子,数据这门课要多画图,链表的图,各种树的图,各种状态图,图形是最为直观的。如果一直对着书或者百度死磕,容易乱,一定要动笔多画图。

2

多写流程

一个再复杂的操作也是由很多简单的操作组成的。计算机就是一个死家伙,一次只执行一行代码,不会跳着走,也不会倒着走。想要计算机执行的正确,那么我们自己要先清楚一步一步怎么去走,去执行。

 如向链表中某个元素A后插入一个元素B时:

 一.先找到元素A对应的index

 二.对应index后面的元素都向后移一位,把位置空出来

 三.将要插入的元素B赋值到中间空出的位置

 四.返回插入位置的index值

3

多联想现实

计算机是对现实的抽象,数据结构是对现实中各个事物的抽象,不能死学,一定要和现实对应起来,这样不仅记忆深刻,也能加深理解学习。如银行排队,食堂排队是队列。计算机处理()和四则运算是栈。去图书管找书是用的树。 淘宝京东等商城的推荐,猜你喜欢用的是图等等。

05

推荐学习书籍

书:《大话数据结构》,网盘链接:链接:https://pan.baidu.com/s/1TXTWwukn-YMgx_KOC-AyMQ 密码请在公众号回复 大话数据结构

不论数据结构课程考试还是考研的时候,这本书是必看必刷!!书中以老师上课的形式用诙谐优默的话句对多种数据结构进行现实生活类比。对弄懂数据结构大有脾益。

公众号:java技术大本营

QQ群: 661749608 

微信:best396975802 

邮箱: lixiang9409@vip.qq.com 

今日语录

选一个方向,定一个时间,剩下的只管努力与坚持 

文字来源:微笑的小小刀

图文排版:花音

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值