读《大话数据结构》溢彩加强版

这篇具有很好参考价值的文章主要介绍了读《大话数据结构》溢彩加强版。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大话数据结构溢彩pdf,读书,数据结构,链表,算法

源代码:
C:\迅雷下载\2021072816023491335\59e95a4689eeb92f380f4ab2\202107\29976aaa-ef7a-11eb-aba5-00163e0a088c
PPT:
C:\迅雷下载\2021072816023491335\59e95a4689eeb92f380f4ab2\202009\942a5ce8-fe34-11ea-a6a1-00163e0396a1
参考文献:
C:\迅雷下载\2021072816023491335\59e95a4689eeb92f380f4ab2\202009\c53b3bcc-fe34-11ea-97a4-00163e0a088c

2.5 算法的特性

  • 输入
  • 输出
  • 有穷性
  • 确定性
  • 可行性

2.6 算法设计的要求

  • 正确性
  • 可读性
  • 健壮性
  • 时间效率高和存储量低

2.9

推导大 O 阶方法
1)用常数 1 取代运行时间中的所有加法常数。
即,不论算法函数运行多少次,只要是通过加法得到的,就改为 1。
2)在修改后的运行次数函数中,只保留最高阶项
3)如果最高阶项存在且其系数不是 1,则去除与这个项相乘的系数。
得到的结果就是大 O 阶。

2.9.5 对数阶

2 x Count >= n 退出循环
由 2Count = n 得到 x = log2n,时间复杂度是 O(logn)

2.10 常见的时间复杂度

常数阶
12
O(1)

线性阶
2n + 3
O(n)

平方阶
3n2 + 2n + 1
O(n2)

对数阶
5log2n + 20
O(logn)

nlogn阶
2n + 3nlog2n + 19
O(nlogn)

立方阶
6n3 + 2n2 + 3n + 4
O(n3)

指数阶
2n
O(2n)

时间复杂度耗费的时间从小到大排:
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

第3章,线性表

线性表:(List) 零个或多个元素的有限序列。

数组长度:存放线性表的存储空间的长度,存储分配后这个量一般是不变的。

线性表的长度:线性表中数据元素的个数,随着线性表插入和删除操作的进行,这个量是变化的。

任意时刻,线性表的长度应该小于等于数组的长度。

3.5 顺序存储结构的插入与删除

优点:

  • 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。
  • 可以快速地存取表中任一位置的元素。
    缺点:
  • 插入和删除操作需要移动大量元素。
  • 当线性表长度变化较大时,难以确定存储空间的容量。
  • 造成存储空间的“碎片”

3.6 线性表的链式存储结构

节点:

  • 节点数据
  • 下一节点地址

3.7 单链表的读取

要通过循环的移动下标,判断,才能读取到指定下标的数据。

3.8 单链表的插入与删除

3.9 单链表的整表创建

1)声明一指针 p 和计数器变量 l
2)初始化一空链表 L。
3)让 L 的头结点的指针指向 NULL,即建立一个带头结点的单链表。
4)循环:
(1)生成一新结点赋值给 p
(2)随机生成一数字赋值给 p 的数据域 p->data
(3)将 p 插入到头结点与前一新结点之间。

3.10 单链表的整表删除

3.12 静态链表

3.13 循环链表

3.14 双向链表

第4章,栈与队列

4.6 栈的链式存储结构及实现

4.8 栈的应用 —— 递归

4.9 栈的应用 —— 四则运算表达式求值

后缀表达式:叫后缀的原因,在于所有的符号都是在要运算数字的后面出现。
一种不需要括号的后缀表达法,称为逆波兰表示(Reverse Polish Notation, RPN)。

4.10 队列的定义

4.12 循环队列

第5章,串(字符串)

5.6 朴素的模式匹配算法

110页,

5.7 KMP 模式匹配算法

第6章,树

6.8.2 二叉树的遍历方法

[[二叉树的遍历方法]]

书中规则的描述认为不清晰。

6.9 二叉树的建立

6.11 树、森林与二叉树的转换

第7章,图

7.6 最小生成树

普里姆( Prim )算法
克鲁斯卡尔( Kruskal )算法

7.7 最短路径

迪杰斯特拉( Dijkstra )算法
弗洛伊德( Floyd )算法文章来源地址https://www.toymoban.com/news/detail-611548.html

7.8 拓扑排序

7.9 关键路径

第8章,查找

8.3 顺序表查找

8.4 有序表查找

8.5 线性索引查找

8.6 二叉排序树

8.7 平衡二叉树(AVL 树)

8.8 多路查找树(B树)

8.9 散列表查找(哈希表)概述

8.10 散列函数的构造方法

  • 直接定址法:取关键字的某个线性函数值为散列地址
  • 数字分析法
  • 平方取中法
  • 折叠法
  • 除留余数法
  • 随机数法

8.11 处理散列冲突的方法

  • 开放定址法
  • 再散列函数法
  • 链地址法
  • 公共溢出区法

第9章,排序

9.3 冒泡排序

9.4 简单选择排序

9.5 直接插入排序

9.6 希尔排序

9.7 堆排序

9.8 归并排序

9.9 快速排序

到了这里,关于读《大话数据结构》溢彩加强版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 读书笔记-《数据结构与算法》-摘要4[插入排序]

    核心:通过构建有序序列,对于未排序序列,在已排序序列中从后向前扫描(对于单向链表则只能从前往后遍历),找到相应位置并插入。实现上通常使用in-place排序(需用到O(1)的额外空间) 从第一个元素开始,该元素可认为已排序 取下一个元素,对已排序数组从后往前扫描 若从

    2024年02月04日
    浏览(27)
  • 读书笔记-《数据结构与算法》-摘要8[桶排序]

    桶排序和归并排序有那么点点类似,也使用了归并的思想。大致步骤如下: 设置一个定量的数组当作空桶。 Divide - 从待排序数组中取出元素,将元素按照一定的规则塞进对应的桶子去。 对每个非空桶进行排序,通常可在塞元素入桶时进行插入排序。 Conquer - 从非空桶把元素

    2024年01月18日
    浏览(31)
  • 数据结构-链表结构-双向链表

    双向链表也叫双链表,与单向链表不同的是,每一个节点有三个区域组成:两个指针域,一个数据域 前一个指针域:存储前驱节点的内存地址 后一个指针域:存储后继节点的内存地址 数据域:存储节点数据 以下就是双向链表的最基本单位 节点的前指针域指向前驱,后指针

    2024年02月04日
    浏览(36)
  • <数据结构> 链表 - 链表的概念及结构

    概念: 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的 逻辑顺序 是通过链表中的 指针链接 次序实现的 1、链表由一系列结点(链表中每一个元素称为结点)组成。 2、结点可以在运行时动态(malloc)生成。 3、每个结点包括两个部分:一个是存储数据元素的

    2023年04月09日
    浏览(32)
  • 【数据结构-链表-01】反转链表

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学习,不断总结,共同进步,活到老学到老 导航 檀越剑指大厂系列:全面总

    2024年02月10日
    浏览(33)
  • 数据结构——线性数据结构(数组,链表,栈,队列)

    数组(Array) 是一种很常见的数据结构。它由相同类型的元素(element)组成,并且是使用一块连续的内存来存储。 我们直接可以利用元素的索引(index)可以计算出该元素对应的存储地址。 数组的特点是: 提供随机访问 并且容量有限。 2.1. 链表简介 链表(LinkedList) 虽然是

    2024年02月11日
    浏览(33)
  • 【数据结构】详解链表结构

    上篇博客已经介绍了顺序表的实现:【数据结构】详解顺序表。最后在里面也谈及了顺序表结构的缺陷,即 效率低,空间浪费 等等问题,那么为了解决这些问题,于是乎我们引入了链表的概念,下面将对链表结构进行讲解 首先肯定会问,到底什么是链表? 链表的概念 : 链

    2024年02月05日
    浏览(33)
  • 【数据结构】链表的回文结构

    单链表的操作算法是笔试面试中较为常见的题目。 本文将着重介绍平时面试中常见的关于链表的应用题目,马上要进行秋招了。希望对你们有帮助 _ 😀 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针

    2024年02月12日
    浏览(39)
  • 【数据结构】浅谈数据结构-链表【思路+例题学习】

    🏆今日学习目标: 🍀学习算法-数据结构-链表 ✅创作者:贤鱼 ⏰预计时间:30分钟 🎉个人主页:贤鱼的个人主页 🔥专栏系列:算法 🍁贤鱼的个人社区,欢迎你的加入 贤鱼摆烂团 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中

    2024年01月21日
    浏览(39)
  • 【数据结构】每天五分钟,快速入门数据结构(二)——链表

    目录 一 构建一个单向链表 二 特点 三 时间复杂度 四 相关算法 1.判断链表是否成环及成环位置 2.链表反转 五 Java中的LinkedList 类 1.使用 2.LinkedList 方法 长度无限 适合任意位置插入和删除频繁的场景 物理上可以不连续 访问、插入、删除 的时间复杂度均为O(n) 在头部插入元素

    2024年02月21日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包