第一章 绪论:基础概念体系

🚩算法:问题求解步骤的描述。
🚩非递归的算法效率更高。

1.1 逻辑结构 vs 存储结构

维度逻辑结构存储结构(物理结构)
定义数据元素之间的逻辑关系数据结构在计算机中的实现方式
分类线性/树形/图/集合顺序/链式/索引/散列
独立性独立于存储结构依赖逻辑结构
示例线性表有序表数组(抽象层面)顺序表、链表、静态链表
ADT描述描述操作语义描述具体实现
  • 存储数据时,要存元素的值和元素之间的关系。

1.2 抽象数据类型(ADT)三要素

ADT List {数据对象:D = {a_i | a_i∈ElemSet, i=1,2,...,n}数据关系:R = {<a_{i-1},a_i> | a_{i-1},a_i∈D}基本操作:InitList(&L), ListInsert(&L,i,e)...
}

第二章 三种表:具体实现对比

2.1 核心概念关系

术语本质所属层级与其它概念关系
线性表逻辑结构逻辑层可用顺序/链式存储实现
有序表逻辑结构+约束逻辑层元素有序的线性表
顺序表存储结构物理层线性表的顺序存储实现
数组【随机存取】逻辑结构+存储结构跨层概念可视为特殊的顺序表

2.2 顺序表 vs 有序表 vs 线性表

特性线性表(抽象)顺序表(实现)有序表(特殊)
元素关系前驱后继关系物理相邻存储按关键字有序
存储方式与实现无关连续内存空间通常用顺序存储
查找效率O(n)按位O(1),按值O(n)顺序存储时可二分O(logn)
插入删除依赖实现移动元素O(n)需保持有序性O(n)
  • 栈和队列的ADT相同,即逻辑结构都是线性表。
  • 顺序表具有随机存取是指:查找序号i的元素的时间,与顺序表中元素个数n无关
  • 扩容问题➡顺序表插入算法:n个空间满了时,申请m个,若申请失败,则说明系统没有:n+m个可分配的存储空间(n也要被复制进新表)
  • 对长度为n的、顺序存储的有序表,实现给定的算法中时间复杂度为O(1)的是:获取第i个值的算法。
  • 线性表是具有n个同类型数据元素的有限序列。除开始元素外,每个元素只有唯一的前驱元素。
  • 若非空线性表中的元素,既没有前驱也没有后继,则:表中只有1个元素。
  • 线性表的顺序存储结构:是一种随机存取的存储结构。
  • 线性表要取前驱后继则采用什么物理结构:顺序表最好。
  • 线性表要取指定序号在最后插入删除:物理结构用顺序表最好。
  • 按值查找一定要比较值,所以与长度有关。

第三章 存储结构

3.1 顺序存储 vs 链式存储

特性顺序存储链式存储
物理结构连续内存空间离散节点+指针
存储密度100% ,所以密度大<100%(需存储指针)
访问方式随机存取(直接计算地址)顺序存取(必须遍历)
插入删除O(n)(需移动元素)O(1)(已知位置)
扩容方式需重新分配+复制动态增长
缓存友好性好(空间局部性)
代表实现顺序表、静态数组单链表、双链表
典型应用频繁随机访问场景动态数据集合
能表示的逻辑结构种类少种类多
  • 不能说某一种存储结构优于另一种
  • 元素存放顺序与存储空间大小无关
  • 顺序和链式都能顺序存取

3.2 数组的特殊性分析

视角解释示例
逻辑层线性结构的推广(一维数组即线性表)矩阵是二维线性结构
物理层顺序存储的典型实现int a[10]连续存储
操作特性通过下标直接访问元素(本质是基地址+偏移量计算)a[i] ≡ *(a+i)

第四章 易混淆概念速查表

常见混淆对区分关键记忆技巧
顺序表 vs 数组顺序表强调逻辑关系,数组侧重存储“数组是顺序表的具体实现”
有序表 vs 顺序表有序是逻辑约束,顺序是存储方式“有序表可以用链表实现”
线性表 vs 链表线性表是抽象概念,链表是具体实现“链表是实现线性表的方式”

第五章 知识体系图谱

以下是补充栈(Stack)和队列(Queue)后的完整知识图谱,严格区分逻辑结构与存储结构,并标注实现方式:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84843.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84843.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84843.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

73页PPT | 大数据平台规划与数据价值挖掘应用咨询项目解决方案

推荐摘要&#xff1a;在数字化浪潮中&#xff0c;企业数据量呈几何级增长&#xff0c;却常因缺乏科学规划的大数据平台&#xff0c;陷入数据孤岛、处理效率低下的困境&#xff0c;难以充分挖掘数据价值。特推出大数据平台规划与数据价值挖掘应用咨询项目解决方案&#xff0c;正…

gRPC 与 Protobuf 的深度集成 —— 从服务定义到多语言交互(Go + Java 示例)

在前几篇文章中&#xff0c;我们已经掌握了 Protobuf 的基础语法、高级特性和序列化反序列化操作。本篇文章将深入讲解 gRPC 与 Protobuf 的集成&#xff0c;重点介绍如何通过 .proto 文件定义服务接口&#xff0c;并在 Go 和 Java 中实现 gRPC 服务与客户端的完整交互流程。我…

可信计算的基石:TPM技术深度解析与应用实践

可信计算的基石&#xff1a;TPM技术深度解析与应用实践 引言&#xff1a;数字世界的"信任之锚" 在数据泄露事件频发的时代&#xff0c;传统软件级安全防护已力不从心。TPM&#xff08;可信平台模块&#xff09;作为硬件级安全解决方案&#xff0c;正成为现代计算设…

「ECG信号处理——(18)基于时空特征的心率变异性分析」2025年6月23日

一、HRV概述 心率变异性&#xff08;Heart rate variability ,HRV&#xff09;分析是通过测量分析连续正常R-R间期的时间变化来反映心率的变化程度的&#xff0c;根据计算RR 序列的统计指标&#xff0c;或者是画出RR间期的直方图和散点图来反映HRV的大小情况。下面我们从男性与…

【学习笔记】深入理解Java虚拟机学习笔记——第10章 前端编译与优化

第10章 前端编译与优化 10.1 概述 1>前端编译器&#xff1a;Javac命令。 【.java文件->.class文件】 2>即时编译器&#xff1a;Hotspot.C1.C2 【.class文件->机器码】 3>提前编译器&#xff1a;JDK的Jaotc等【.java->机器码】 10.2 Javac 编译器 10.2.1 …

Python 区块链与Web3开发指南

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 区块链基础概念 区块链核心特性 python 复制 下载 class Block:def __init__(self, index, timestamp, data, previous_hash):self.index indexself.timestamp timestampself.data datas…

工业智能体调参闭环:从物料感知到智慧工艺的落地路径

用户定义目标&#xff1a;智能工艺的起点不是机器&#xff0c;而是人 在智能制造系统中&#xff0c;工艺调优的第一步并非直接依赖AI或自动化设备&#xff0c;而是始于用户的明确输入。用户需要在系统中定义产品的工艺要求&#xff0c;包括目标尺寸与规格&#xff08;如长宽高…

【Linux学习笔记】进程间通信之共享内存

【Linux学习笔记】进程间通信之共享内存 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】进程间通信之共享内存前言一. system V共享内存1.1 共享内存数据结构1.2 共享内存函数1.3 共享内存实现通信…

郭碧婷闯入女团赛道 与刘忻张予曦蔡诗芸组成ROLLING SISTERS

近日&#xff0c;郭碧婷与刘忻、张予曦、蔡诗芸组成的女团ROLLING SISTERS正式官宣&#xff0c;并发布《Rolling Life》《Alpha》两首单曲&#xff01; 此次几位姐姐的组合让大家眼前一亮&#xff0c;尤其是郭碧婷造型颠覆以往。银灰色挑染短发搭配棱角分明的黑色烟熏妆&#x…

2025再升级:医疗数智立体化体系V2.0架构简介

在医疗数智立体化体系第一版基础上,融入量子物理的第一性原理计算、人工智能(AI)、高性能云计算(HPC)和标准化机器人自动化整合成“医疗数智立体化体系2.0”,代表了医疗研发未来的重要发展方向。这个体系的核心在于深度融合物理世界规律、智能计算与自动化执行,为医疗AI…

Day40 训练和测试的规范写法

目录 一、彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中 单通道图片的规范写法 彩色图片的规范写法 二、展平操作&#xff1a;除第一个维度batchsize外全部展平 图像任务中的张量形状 NLP任务中的张量形状 1. Flatten操作 2. view/reshape操作 总结 三…

Linux 文件 I/O 与标准 I/O 缓冲机制详解

一、什么是标准 I/O&#xff1f;&#xff08;FILE* 接口&#xff09; 标准 I/O 是 C 标准库为我们提供的一套高级文件操作接口&#xff0c;核心基于结构体 FILE&#xff0c;常见函数如&#xff1a; fopen() / fclose() fread() / fwrite() fprintf() / fscanf() fflush() /…

C++的前世今生-C++11

C98&#xff08;ISO/IEC 14882:1998&#xff09; C98 是 C 的第一个标准化版本&#xff08;ISO/IEC 14882:1998&#xff09;&#xff0c;它正式确立了 C 的核心语言特性和标准库。以下是 C98 的主要特性总结&#xff1a; 一、核心语言特性** 模板&#xff08;Templates&…

词编码模型怎么进行训练的,输出输入是什么,标签是什么

词编码模型怎么进行训练的,输出输入是什么,标签是什么 词编码模型的训练本质是通过数据驱动的方式,将离散的文本符号映射为连续的语义向量。 一、训练机制:从符号到向量的映射逻辑 1. 核心目标 将单词/子词(Token)映射为低维向量,使语义相关的词在向量空间中距离更近…

【Linux指南】文件管理高级操作(复制、移动、查找)

引言 在Linux系统管理中&#xff0c;文件的复制、移动与查找是比基础操作更进阶的核心技能&#xff0c;它们构成了高效管理文件系统的"三驾马车"。当我们需要备份重要数据、重构目录结构或在庞大的文件系统中定位目标文件时&#xff0c;cp、mv、find等命令将成为最得…

【栈】-----【小C的记事本】

小C的记事本 题目描述 小C最近学会了 Java 小程序的开发&#xff0c;他很开心&#xff0c;于是想做一个简单的记事本程序练练手。 他希望他的记事本包含以下功能&#xff1a; append(str)&#xff1a;向记事本插入字符串 str&#xff08;英文字符&#xff09;。delete(k)&am…

技能系统详解(2)——特效表现

特效会有个EffectManager用于统一管理所有特效&#xff0c;技能特效只是各类特效中的一种 EffectManager需要提供特效的创建&#xff0c;返回被封装为EffectHandle 每类特效都有各种不同的配置参数&#xff0c;这些配置参数会传递给EffectManager用于生成EffectHandler 为支…

12.OpenCV—基础入门

01读取图像 02创建空白图像 03保存图像 04更改图像亮度 05更改图像对比度 06灰度直方图均衡 07彩色直方图均衡 08五种滤波方式 09形态学操作 10仿射变换 11角度缩放仿射变换 12透视变换 13坐标映射 14模板匹配 15多模板匹配 16查找轮廓线 17轮廓线匹配 17绘制…

【Python】Python之什么是生成器?什么是迭代器?

目录 专栏导读前言什么是迭代器&#xff08;Iterator&#xff09;&#xff1f;迭代器的定义迭代器协议可迭代对象 vs 迭代器自定义迭代器迭代器的优势 什么是生成器&#xff08;Generator&#xff09;&#xff1f;生成器的定义生成器函数生成器表达式复杂的生成器示例生成器的状…

Python中实现简单爬虫并处理数据

在当今数据驱动的时代&#xff0c;能够从互联网上高效地抓取信息变得越来越重要。Python因其简洁易学的特性&#xff0c;成为了编写网络爬虫的首选语言之一。接下来&#xff0c;我将介绍如何使用Python来实现一个基础的网络爬虫&#xff0c;并对收集到的数据进行初步处理。 首先…