zoukankan      html  css  js  c++  java
  • 1. 数据结构概述

    1.1 什么是数据结构

    说到数据结构,我觉得可以拆分成两个词,数据和结构。

    先来打个比方。

    同样是水,

    有的被放进了游泳池,成为了游泳嬉戏的场所;

    有的被放进了杯子,供我们喝水;

    我们不可能喝水,不用杯子,用游泳池。

    说到底,就四个字:因地制宜???(好像比较恰当,欢迎大家集思广益)

    数据就好比这里的水,是我们想要使用的东西,对我们有价值的东西;

    结构就好比游泳池、杯子,是帮助我们更好的使用数据,能更好更快的完成一些特定操作。

    所以,在我看来,其实我们学的是结构,如何去组织数据,让它能够完成在特定场景下的一些任务。

    1.2 数据与内存读取

    就像上面所说的,我们主要学习的是结构,所以结构会在后面慢慢讲解。

    这里主要介绍下,数据及计算机内存中的读取操作。

    还是打个比方,如果把内存比作一个公寓,公寓中的每个房间代表可以存储一定数量的数据。

    就好像单人房、双人房那样,每个人是一个数据。

    你现在就是超人,如果让你到指定房间,对其中的住户进行盘查。

    你可以怎么去排查呢?比如需要排查的是1100房间。

    • 你可以进了公寓,慢悠悠的从1001,经过1002,1003...,然后走到1100房间
    • 你也可以暴力点,从1001,然后一口气跳到到1100房间。

    计算机也有相应的操作,我们继续说。

    在计算机中,每个数据存放在一块内存区域中,计算机会给每个内存区域分配一个地址。

    我们将内存区域与上述比喻进行一个对照。(图片修改自极客专栏:《数据结构与算法之美》)

    1.3 说下数据操作

    想想我们平时需要对数据进行什么样的操作,增删改查,四个字一定不陌生吧。

    • 增,添加数据
    • 删,删除数据
    • 改,修改数据
    • 查,查找数据

    所以说,我们如何学习数据结构呢?

    • 知道数据的结构
    • 对相应的数据结构完成上面四种操作
    • 一点题目,稍微练练手

    就可以收功了。


    Github地址 欢迎 star 收藏

    寻找有趣或更有效率的事、工具和教程

  • 相关阅读:
    服务器与本地时间的倒计时
    没有花括号(大括号)的for循环也能正确执行
    js瀑布流效果
    AQS详解(AbstractQueuedSynchronizer)
    SimpleDateFormat的线程安全问题与解决方案
    jvm不打印异常栈
    Java中的序列化Serialable高级详解
    java梳理-序列化与反序列化
    AQS详解
    对ConditionQueue和锁的理解
  • 原文地址:https://www.cnblogs.com/zhouzhiyao/p/12567423.html
Copyright © 2011-2022 走看看