论数据结构

news/2025/3/21 0:01:04/

诞生

尼古拉斯沃斯 1984 年获得图灵奖,1992 年当选瑞士工程院院士,1994 年当选美国国家工程院外籍院士,1999 年 4 月退休。

他曾经提出了一个著名公式:算法 + 数据结构 = 程序(Algorithms + Data Structures = Programs),并凭借其摘得图灵奖,该公式之后也成为计算机领域人尽皆知的名言。


比喻

战场:程序运行所需的软件、硬件环境。

敌人:项目或模块的功能需求。

指挥官:编写程序的程序猿/媛。

士兵和装备:数据。

排兵布阵、组织结构、指挥体系数据结构

战略战术算法。


基本类型

逻辑结构有四种基本类型:集合结构、线性结构、树形结构、图形结构(或网状结构)

集合结构:同属一个集合

线性结构:1对1

树形结构:1对多

图结构:多对多


嵌入式领域经常使用线性结构:

线性结构中有

数组

链表:

链表由一系列`结点(Node)`组成,每个结点包含一个数据元素和一个指向下一个结点的`指针(Pointer)`。所有结点通过指针相连,形成一个链式结构。通常我们将链表中的第一个结点称为`头结点`

链表又分为单链表双链表循环单链表循环双链表

栈:

后进先出` (LIFO,Last In First Out)或`先进后出` (FILO,First In Last Out)的线性表

栈最常用的地方就是计算机的函数调用,不管何种语言,最先被调用的一定最后返回。举例:

void funcC() {
}
void funcB() {funcC();
}
void funcA() {funcB();
}
  • 调用顺序是: funcA() -> funcB()-> funcC()。
  • 返回顺序是: funcC() -> funcB()-> funcA()。

 队列

队列(Queue):也是操作受限的线性表,限制为仅允许在表的一端进行插入(入队或进队),在表的另一端进行删除(出队或离队)操作。

是一种先进先出(First In First Out ,简称FIFO)的线性结构。类似于生活中的排队行为。


    http://www.ppmy.cn/news/1580716.html

    相关文章

    深度学习部署到小程序

    1.小程序 2.安装环境,创建虚拟环境 3.深度学习小程序版环境安装-CSDN博客

    学习使用 Git 和 GitHub 开发项目的教程推荐

    Git 和 GitHub 是现代软件开发中不可或缺的工具,无论你是个人开发者还是团队成员,掌握它们都能极大提升效率。本文精选了一系列优质教程资源,涵盖从基本 Git 命令到进阶多人协作的内容。这些教程既有文字形式,也有视频或交互式资源…

    案例驱动的 IT 团队管理:创新与突破之路:第一章 重构 IT 团队管理:从传统到创新-1.2.1 真实场景还原:从失败中学习

    👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 重构 IT 团队管理:从传统到创新1.2.1 真实场景还原:从失败中学习一、案例背景:某金融企业核心系统升级项目1. **项目目标与初期规划**2. …

    [科普] git和github等是什么关系 (由DS-R1生成)

    Git 和 GitHub 是两种不同的工具,但二者紧密相关,共同构成了现代软件开发中代码管理的重要生态。以下是它们的核心概念与关系: 1. Git:分布式版本控制系统 核心功能: 跟踪代码的版本变化(支持本地提交、分…

    每日Attention学习27——Patch-based Graph Reasoning

    模块出处 [NC 25] [link] Graph-based context learning network for infrared small target detection 模块名称 Patch-based Graph Reasoning (PGR) 模块结构 模块特点 使用图结构更好的捕捉特征的全局上下文将图结构与特征切片(Patching)相结合,从而促进全局/…

    ArcGIS10. 8简介与安装,附下载地址

    目录 ArcGIS10.8 1. 概述 2. 组成与功能 3. 10.8 特性 下载链接 安装步骤 1. 安装准备 2. 具体步骤 3.补丁 其他版本安装 ArcGIS10.8 1. 概述 ArcGIS 10.8 是由美国 Esri 公司精心研发的一款功能强大的地理信息系统(GIS)平台。其核心功能在于…

    Java基础关键_025_IO流(三)

    目 录 一、数据输入输出流 1.DataOutputStream 2.DataInputStream 二、序列化和反序列化 1.ObjectOutputStream 2.ObjectInputStream 3.Serializable 接口 (1)说明 (2)实例 4.序列化版本号 (1)…

    蓝桥杯练习day1:拆分数位-四位数字的最小和

    前言 给你一个四位 正 整数 num 。请你使用 num 中的 数位 ,将 num 拆成两个新的整数 new1 和 new2 。new1 和 new2 中可以有 前导 0 ,且 num 中 所有 数位都必须使用。 比方说,给你 num 2932 ,你拥有的数位包括:两…