你的数据结构怎么学的?提起数据结构,计算机与软件,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. cookie跨域那些事儿

    一个请求从发出到返回,需要浏览器和服务端的协调配合.浏览器要把自己的请求参数带给服务端,服务端校验参数之后,除了返回数据,也可能会顺便把请求是否缓存,cookie等信息告诉浏览器.当请求是跨域请求的时 ...

  2. 【linux】驱动-8-一文解决设备树

    目录 前言 8. Linux设备树 8.1 设备树简介 8.2 设备树框架 8.2.1 设备树格式 8.2.1.1 DTS 文件布局 8.2.1.2 node 格式 8.2.1.3 propertie ...

  3. Python数据分析入门(六):Pandas的函数应用

    apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df = pd.DataFrame(np.random.randn(5,4) - 1) p ...

  4. Echarts概述

    1. Echarts概述 ECharts是百度开源的纯 Javascript 图表库,目前开源可以与highcharts相匹敌的一个图表库.支持折线图(区域图).柱状图(条状图).散点图(气泡图).K ...

  5. centos 7升级gcc到10.2.0

    安装gcc 由于 Linux 操作系统的自由.开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS.Ubuntu.Debian 等.这些 Linux 发行版中,大多数都默认装有 ...

  6. Java刷题-list

    一.打印两个有序链表的公共部分 补充一个关于节点的链表构造方法 Node next是设置指针域 import java.io.IOException;这个是报错信息 这是两个lO流 import ja ...

  7. inline&register

    inline关键字: 内联只是一个请求,不代表编译器会响应:同时某些编译器会将一些函数优化成为内联函数. C++在类内定义的函数默认是内联函数,具体是否真变成内联函数还需看编译器本身. registe ...

  8. SQL Server CDC配合Kafka Connect监听数据变化

    写在前面 好久没更新Blog了,从CRUD Boy转型大数据开发,拉宽了不少的知识面,从今年年初开始筹备.组建.招兵买马,到现在稳定开搞中,期间踏过无数的火坑,也许除了这篇还很写上三四篇. 进入主题, ...

  9. 数据结构之队列(JavaScript描述)

    队列数据结构   队列遵循先进先出原则的一组有序的项.对可在尾部添加新元素并从顶部移除元素.最新添加的元素必须排在队列的末尾 队列类似栈的例子 创建队列 创建一个类表示队列 队列内应该有一些方法 添加 ...

  10. 1025 PAT Ranking

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...