你的数据结构怎么学的?提起数据结构,计算机与软件,it行业内无人不知,无人不晓。但是,当你真正的去通过数据结构与算法内容去实践内容时,真的能联系起来吗?那肯定的

不管是考研还是做项目,数据结构都是必学的,基本所有人都学过数据结构,学过算法。说起数据结构,那不就是,代码的结构安排吗?说起算法,那不就是实现目标的最简单的代码实现吗?好像所有人都学过二分查询,递归,快排,说起来,好像懂得挺多的,可是实际用的时候,代码不会敲,这个咳咳,可能不是很重要,但是提起来你了解,但是,一旦不说,你就根本想不起来用,那你的数据结构与算法就是这么学习的?说起来你知道一个for循坏的时间复杂度为O(n),两个就是O(n^2),一旦给你稍微复杂一点的,你会算时间复杂度嘛?嗯。。。我会。。你会你试试!然后带来的就是这个。。。。。。是吧。。。。我也是n遍来学数据结构,可能后面不会,前面又忘,那今天就在来看看,了解一下数据结构与算法的最基本的内容!

  

本次内容:

    第一节:了解数据结构(基本概念)

一:数据结构(基本概念)

    1.1  数据结构

    你说说,你说说?数据结构是什么?哼,不就是数据结构,数据结构不就是 数据结构,说的好像也没错。好像你问起来,好多人都不一定能回答的这么顺畅,可能等待的就是鸦雀无声,那么,在这就说一下数据结构是啥,用点很正的语言。数据结构:相互之间存在一种或多种特定关系的数据元素的集合。这下知道了什么数据结构,小弟在这打赌,如果就看这一下,我赌明天早上你必忘!

    1.2  数据结构的起源

    怎么说呢,我感觉当我学这门课到一定程度时,我才会有兴趣了解它的起源,现在,我都不会这里弟弟就不写出来了,有兴趣的哥哥姐姐自己查呗。

    1.3   基本概念等

    这里呢,再说一些基本的概念什么的,肯定不是我自己写的,肯定根据理解写出来的。

      1.3.1 数据

      数据是什么?数据就是表述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合总结来说就是两点把,一个是代表着实体事务,一个就是可以被计算机识别处理。

      1.3.2 数据元素

       数据元素就是组成数据的,有一定的意义的基本单位,在计算机中通常作为整体处理。也被称为记录。咋说呢,可能这种话听不明白,换个简单的,人类的数据元素,人。牲口呢,肯定就是鸡鸭鱼等了。

       1.3.3 数据项

      一个数据元素可以由多个数据项来组成,例如:人就是可由眼睛鼻子嘴等等组成;数据项是不可分割的最小单位。但是我们开始分析数据结构的时候,都是通过进行分析其数据元素,着眼于个体,而不是眼鼻嘴等器官

      1.3.4 数据对象

      数据对象就是:数据元素的集合,当然需要性质相同,是数据的子集。在平常我们都将数据对象简称为数据,不要问我为什么,问就是我也不知道!

      1.3.5 数据结构

      终于到了最重要的一个了,数据结构,数据就是指标志着事务的符号,结构就是各个部分的相互组成,搭配,排列方式等,每个人与每个人都有联系,都存在着特定的关系,而这种非独立的关系,就被称为结构。因此,数据结构就是:相互之间存在一种或者多种特定关系的数据元素的集合

        我画的图(自己的总结把):

      

    1.4 逻辑结构与物理结构

      1.4.1 逻辑结构

        逻辑结构:是指数据元素之间的关系;可以分为以下的四种结构;

        1.集合结构:集合结构种的数据元素除了同属于一个集合以外,其他没什么关系,各个元素之间平等。

        2.线性结构:线性结构中的元素为一对一

        3.树形结构:存在一对多的关系

        4.图形结构:存在多对多的关系

      

      

      1.4.2 物理结构:指的是在计算机存储的形式。(数据的存储方式有:顺序存储与链式存储)

        1.顺序存储

          顺序存储:就是把数据元素放在地址连续的存储单元种,其逻辑结构与物理顺序一样,其实就是排队存,一个接一个。

        2.链式存储

          链式存储:把数据放在任意的单元格内存储,单元格可以连续,也可以不连续。

        

        链式存储与顺序存储各有各自的优点,通过后面的学习,就可以清楚认知,后面我会写更细的我自己理解,这里先说一个简单的定义。相比大部分都已经学习过了。

  

      1.5 抽象数据类型

        数据类型:是指一组性值相同的值的集合及定义在此集合上的一些操作的总称。

        抽象:以实物的特征,抽取具有普遍性的本质,抽出问题特征,而并非一个具体的细节。

        抽象数据类型:是指一个数字模型及定义在该模型的一系列操作

        简单而言就是虚拟操作,在非真实的电脑上,进行一系列的类似于真实的操作(本人理解)。

      

      

        总之内容也不多,也不算太难,第一章到此结束,你看,你知道多少?我估计大部分新手,确实学了数据结构,但是并不是能永久记忆,这个内容就是为了更好的利于我们学习知识,总结知识,内容有来自《大话数据结构》并非纯粹我自己的语言,但是也有我自己的理解,我们一同学习!!加油!

        

        

  

发现数据结构与算法之美的第n次重新学习 ——— 初遇数据结构与算法(了解)的更多相关文章

  1. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  2. JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)

    1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...

  3. JavaScript 数据结构与算法之美 - 归并排序、快速排序、希尔排序、堆排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

  4. 《数据结构与算法之美》 <05>链表(下):如何轻松写出正确的链表代码?

    想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代 ...

  5. 《数据结构与算法之美》 <04>链表(上):如何实现LRU缓存淘汰算法?

    今天我们来聊聊“链表(Linked list)”这个数据结构.学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法. 缓存是一种提高数据读取性能的技术 ...

  6. 《数据结构与算法之美》 <01>复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

    我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间.所以,执行效率是算法一个非常重要的考量指标. 那如何来衡量你编写的算法代码的执行效率呢?这里 ...

  7. 如何用快排思想在O(n)内查找第K大元素--极客时间王争《数据结构和算法之美》

    前言 半年前在极客时间订阅了王争的<数据结构和算法之美>,现在决定认真去看看.看到如何用快排思想在O(n)内查找第K大元素这一章节时发现王争对归并和快排的理解非常透彻,讲得也非常好,所以想 ...

  8. JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝

    前言 想写好前端,先练好内功. 栈内存与堆内存 .浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScri ...

  9. JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

随机推荐

  1. Dynamics CRM安装教程四:DNS配置

    在为MS CRM 配置Claims-based认证之前,你需要在域控服务器的DNS中添加一些记录,来解析CRM的各个断点,添加內容如下(本次环境全部安装在一台机子中): AD FS 服务器(例: ad ...

  2. 这样介绍Ribbon,从此任何问题也难不住你

    Springcloud的核心组件之Ribbon 上篇文章详细介绍了springcloud的注册中心Eureka,那么这篇文章则会介绍springcloud的另外一个组件Spring Cloud Rib ...

  3. JavaWeb 补充(Filter&Listener)

    目录 Filter:过滤器 Listener:监听器 Filter:过滤器 1. 概念:     * 生活中的过滤器:净水器,空气净化器,土匪.     * web中的过滤器:当访问服务器的资源时,过 ...

  4. [C++]一篇文章搞懂C++中五花八门的各种初始化

    总结 初始化的概念:创建变量时赋予它一个值(不同于赋值的概念) 类的构造函数控制其对象的初始化过程,无论何时只要类的对象被创建就会执行构造函数 如果对象未被用户指定初始值,那么这些变量会被执行默认初始 ...

  5. Spring Boot 2.3 新特配置文件属性跟踪

    背景 当我们使用 spring boot 在多环境打包,配置属性在不同环境的值不同,如下: spring: profiles: active: @project.profile@ #根据maven 动 ...

  6. mariadb_2 单表的增删改查

    命令关键字: 创建表  create 删除表  drop 修改表的内容  update 修改表的结构  alter 删除表中内容 delete 增加表中内容 insert 查询表中内容 select ...

  7. Day16_94_IO_循环读取文件字节流read()方法(二)

    循环读取文件字节流read()方法 通过read()循环读取数据,但是read()每次都只能读取一个字节,频繁读取磁盘对磁盘有伤害,且效率低. import java.io.FileInputStre ...

  8. 数据结构之Stack | 让我们一块来学习数据结构

    栈的介绍 栈就是和列表类似的一种数据结构,它可用来解决计算机世界里的很多问题.栈是一种高 效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且容易实现. 栈的使用遍布程序语言实现的方方 ...

  9. 微信小程序底部实现自定义动态Tabbar

    多图警告!!! 最近在工作中遇到这样一个需求:微信小程序底部的Tab需要通过判断登录人的角色动态进行改变,想要实现这个功能依靠小程序原生的Tabbar是不可能实现的了,所以研究了一下自定义Tab,这里 ...

  10. 【译】Android API 规范

    [译]Android API 规范 译者按: 修改R代码遇到Lint tool的报错,搜到了这篇文档,aosp仓库地址:Android API Guidelines. 58e9b5f Project ...