你的数据结构怎么学的?提起数据结构,计算机与软件,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. Java 给PPT添加动画效果(预设动画/自定义动画)

    PPT幻灯片中对形状可设置动画效果,常见的动画效果为内置的固定类型,即动画效果和路径是预先设定好的固定模板,但在设计动画效果时,用户也可以按照自己的喜好自定义动画动作路径.下面,通过Java后端程序代 ...

  2. BUAA_OO_第三单元

    一.JML初探 ​ JML(Java Modeling Language)作为一种形式化语言,可以约束Java代码中类和方法的状态和行为形成规格,通过将一系列具体代码实现抽象成明确的行为接口,可以形成 ...

  3. 无线网络的应用之aircrack-ng

    在kalilinux的aircracke-ng中.在这儿描述自己所遇到的问题并给予写blog 在使用之前,需要确定是否有对应的支持无线网卡监听的网卡,在虚拟机中需要先将网卡的驱动重定向到虚拟机内 在终 ...

  4. SpringBoot项目war包部署

    服务部署 记录原因 将本地SpringBoot项目通过war包部署到虚拟机中,验证服务器部署. 使用war包是为了方便替换配置文件等. 工具 对象 版本 Spring Boot 2.4.0 VMwar ...

  5. Python面向对象的高级编程

    数据封装.继承和多态只是面向对象程序设计中最基础的3个概念.在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能. 我们会讨论多重继承.定制类.元类等概念. 使用__slots__ ...

  6. python工业互联网应用实战13—基于selenium的功能测试

    本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于selenium的功能测试做法.笔者过去的项 ...

  7. matlab map容器类型

    matlab map容器类型 map容器类型以及map类概述 map是将一个量映射到另一个量上,此是前面的量就是map的键(key),后面的量就是map的数据(value).map的键和对应的数据都储 ...

  8. volatile修饰全局变量,可以保证并发安全吗?

    今天被人问到volatile能不能保证并发安全? 呵,这能难倒我? 上代码: //电脑太好,100线程起步~public class ThreadTest { private static volat ...

  9. 【秒懂音视频开发】21_显示BMP图片

    文本的主要内容是:使用SDL显示一张BMP图片,算是为后面的<播放YUV>做准备. 为什么是显示BMP图片?而不是显示JPG或PNG图片? 因为SDL内置了加载BMP的API,使用起来会更 ...

  10. 09- Linux下压缩和解压命令

    压缩和解压命令 gzip命令: 作用: tar命令 作用:对文件或文件夹进行打包和解包的操作. 格式:tar [选项] 文件名 [文件名或路径] 练习题: