第一章    绪论

主要内容:

一.数据结构的基本概念

1.数据: 是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

2.数据对象: 数据对象是性质相同的数据元素的集合,数据的一个子集。

3.数据元素: 数据元素是数据的基本单位,也叫做节点或记录。在计算机程序中通常作为一个整体进行考虑和处理。(一个数据元素可由若干个数据项组成.)

4.数据项: 数据项是数据的不可分割的最小单位。(一个数据元素可由若干个数据项组成.)

5.数据类型: 一个值的集合以及定义在此集合上的一组操作的总称。

1)原子类型:其值不可再分的数据类型,包括整型、字符型等

2)结构类型:由若干成分按某种结构组成的,其值可再分的数据类型。这些成分可以是原子类型,也可以是结构类型。

3)抽象数据类型(Abstract Data Type,简写ADT):抽象数据组织和与之相关的操作.

6.数据结构: 相互之间存在一种或多种特定关系的数据元素的集合,主要包
括三方面的内容:(逻辑结构、存储结构、数据的运算)。

数据结构构成:逻辑结构→存储结构→数据运算

数据的逻辑结构:

指数据元素之间的逻辑关系,它与数据的存储无关,是独立于计算机的。主要是分为(线性结构、非线性结构)两大类。

①线性结构:结构中的数据之间只存在一对一的关系,主要代表有(线性表、队列、栈、数组)。
它有四个基本特征:第一个元素,最后一个元素,前驱元素,后继元素
②非线性结构:存在着一对多的关系,它又可以多对多的关系,主要有(集合、树、图)。

数据的存储结构
数据的存储结构分为四类:

1)顺序存储结构: 把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。

2)链式存储结构: 不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系3)索引存储结构: 在存储元素信息的同时,还建立附加的索引表(索引项的一般形式一般是<关键字,地址>。关键字标识唯一 一个节点:
地址作为指向节点的指针。)4)散列存储结构: 根据元素的关键字直接计算出该元素的存储地址

算法的基本概念

重要特征:
有穷性,确定性,可行性,输入,输出。

优秀算法的标准

准确性,可读性,健壮性,效率与低存储量需求。

算法效率的度量

时间复杂度定义:一般情况下,算法中基本操作的重复次数作为问题规模 n 的某个函数 f(n),算法的时间度量记作 T(n)=O(f(n)),表示随着问题规模 n 的增大,算法执行时间增长率和 f(n)的增长率相同,称为时间复杂度。

时间复杂度取决于:问题的规模、待处理的数据初态)
空间复杂度:S(n)定义为该算法所耗费的存储空间,是问题规模 n 的函数。

规律: O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<…<O(nk)<O(2n)<O(n!)

第二章:线性表

概念:线性表 是 数据结构 的一种,一个线性表是n个具有相同特性的数据元素的 有限序列 。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(大部分线性表)

特点:

1.除第一个元素外,每一个元素都有一个直接前驱元素,除最后一个元素外,每一个元素都有一个直接后驱元素2.数据元素是组成数据的基本单位,是数据集合的个体,在计算机中通常作为整体进行处理,也称结点记录3.数据项是有独立含义的数据最小单位,也称项或字段数据对象是性质相同的数据元素的集合,是数据的一个子集4.线性表由有限个元素组成,且由同类型数据元素组成,每一个数据元素都属于同一个数据对象

分类:

1. 顺序表
用一段地址连续的存储单元依次存储线性表的数据元素。顺序存储结构在逻辑结构和物理存储结构中都是依次序互相紧挨着。每个数据元素的地址=首元素的地址+一个该数据类型所占空间大小*数组下标。(优点:

查询速度快,时间复杂度为O(1)

缺点:

1.插入元素速度慢,时间复杂度为O(n)

2.表中元素个数需要提前定义

顺序表的时间复杂度如下:

不论数据元素量N有多大,只需要get(i)一次就拿到对的元素,所以时间复杂度为O(1)。

每一次插入,都需要把i的位置后面的元素移动一次,随着元素N的增大,移动的元素也越多,时间复杂度为O(n)。

每一次删除,都需要把i的位置后面的元素移动一次,随着元素的N的增大,移动的元素也越多,时间复杂度O(n)。

2.链表

链表是一种物理存储单元上非连续非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。它不像顺序表那样连续存储元素,而是在每一个节点里存到下一个节点的指针。(优点:内存空间不连续,头插头删效率高,没有空间限制,不会溢出,可以存储很多元素
缺点:不支持随机访问,查找效率低,需遍历查找)

2.1 单链表:单链表是链表的一种,它是由多个结点组成的,每一个结点由一个数据域和一个指针域组成,数据域是用来存储数据,指针域是用来指向下一个结点,头结点的数据域不存储数据,尾结点的指针域是空的。

2.2双链表:

双链表也,也是链表的一种,也是由多个结点组成的,每一个结点由一个数据域和两个指针域组成的,数据域是用来存储数据,两个指针域是用来指向上一个结点和下一个结点,头结点没有指向上一个结点也不存储数据,尾结点没有指向一下一个结点但是它指向上一个节点和存储数据List)(LinkedList使用)

链表的时间复杂度如下 :

  • 每一次查询都需要从链表的头部开始一次向后查找,随着数据元素N的增多比较的元素越多时间复杂度为O(n)。
  • 每一次插入需要找到i位置的前一个元素,然后在插入数据,随着数据元素的增多,查找的元素越多,时间复杂度为O(n)。
  • 每一次移除需要找到i位置的前一个元素,然后在移除数据,随着数据元素的增多,查找的元素越多,时间复杂度为O(n)。

数据结构前两章学习总结相关推荐

  1. 汇编语言 王爽 第四版 前两章学习心得

    博客开篇 从大学入学开始,心里就萌生了写博客的想法,奈何自己太懒惰,一直没有付诸于行动.工作后,最近上班还算清闲,故又萌生出了写博客的想法.千里之行,始于足下.谨以此篇博客作为自己的博客开端,文中不足 ...

  2. 阅读《大型网站技术架构》前两章心得体会及总结

    最近阅读了<大型网站技术架构>这一本书,对于这一行业刚入门的菜鸟来说,虽然只读了前两章,却让我感受颇深,同时也学习和见识到了很多之前不了解.不明白的东西. 通过阅读前两章,我才真正的初步明 ...

  3. 吃瓜Task01(西瓜书前两章)

    目录 第1章 绪论 第2章 模型评估与选择 第1章 绪论 1.1机器学习:研究关于"学习算法"的学问  => 在计算机上从数据(经验)中产生"模型"的算法 ...

  4. 阅读WPF揭秘前两章探索Silverlight运行的基本原理和RIA工作流程的密码(二)

    2.8  编译:将XAML与过程式代码混合使用 WPF允许用任何一种.NET语言完全以过程式代码编写应用程序.另外,一些简单的应用程序可以完全写在XAML中,这多亏了在第9章中提到的数据绑定特性,以及 ...

  5. 数据结构教程(Java语言描述)前两章总结

    一.关于数据结构方面 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构往往同高效的 ...

  6. 『嗨威说』数据结构 - 第七章学习内容小结

     本文基本索引目录:  一.查找的基本概念和专业术语 二.顺序查找算法   三.二分查找算法 四.二叉排序树算法   五.平衡二叉树算法 六.B树简介   七.散列表查找 八.作业例题展示 九.自我总 ...

  7. 【西瓜书笔记】前两章

    第一章 机器学习基于数据,数据集中的一个微观个体成为示例或样本,横向.纵向称为属性或特征,属性取值为属性值,所有特征取值张成的空间为样本空间.输入空间.在这种空间中能找到任意示例的坐标,因此可以吧示例 ...

  8. usaco前两章小结

    usaco 暑假老师有推荐做但是那个题目太长了,而且·大部分都是废话做起来特别慢,而且当时自己基本上什么都不懂,太难了所以看了题解做了两题就放弃了. 转眼就上学了,因为想学习acm所以就胡乱找题做但是 ...

  9. 《Metasploit魔鬼训练营》环境搭建与前两章经历体会

    本人信息安全专业,这学期想学习渗透测试,就在b站上看推荐书籍,无意间发现了这本书,在国内也算比较出名,就买了一本仔细学习.开始是以故事的形式,我们作为公司新人,初次了解metasploit的结构.体系 ...

最新文章

  1. linux支持的machine-types
  2. 数据库命名规则(转)
  3. Markdown拾遗
  4. 【Spring Boot 分享】开源项目【8个】
  5. 一文带你吃透Vue生命周期(结合案例通俗易懂)
  6. 工业物联网再起云涌,大咖共叙破圈之道
  7. MasterPage 变化了的 ClientID ctl00_
  8. 乌鲁木齐高新区大数据产业首个惠农项目落地
  9. 算法设计与分析基础——假币问题(三分法)
  10. 计算机,通信,自动化等方向期刊排名
  11. 使用栈完成高级计算器
  12. HTML网页中显示图片(相对路径 绝对路径)
  13. 雨落无声-开博啦........
  14. 亚马逊广告投放策略卖家们知多少?
  15. vue-cli-service build 环境设置
  16. MySQL当中的约束条件
  17. 数组逆时针旋转 90 度
  18. Policy Evaluation之Doubly Robust论文讲解
  19. easypoi导入图片_原生POI / EasyPOI 简单上手使用
  20. java类添加单元测试代码_如何在java中单元测试时跳过一段代码

热门文章

  1. 利润表模板excel_超多种类的报表模板,填上数据就能用,全拿走
  2. CloudFlare系列--使用第三方来自定义CDN的IP(笨牛简洁版)
  3. 透过《数字孪生白皮书2020》,看平行世界的当下与未来
  4. 网易易盾,js逆向:★★★★★
  5. 比Tor更匿名:麻省理工大学开发新系统
  6. win10系统微软自带的输入法不显示选字框怎么办
  7. CSP2019入门级第一轮-排列组合题
  8. python西游之路
  9. 使用中文维基百科训练word2vec模型的最新方法!
  10. postgresql解析json