数据结构vs 内存结构

1.内存结构

从程序的角度看,内存结构还包括以下几个部分,对应的硬件有磁盘/Cache/DRAM/寄存器

内存结构和对应的硬件关系

txt 复制代码
// 代码段的硬件存储
程序文件: program.exe (在磁盘上)
↓ 程序启动时加载
内存中的代码段 (在DRAM中)
↓ 执行时缓存
CPU缓存 (L1/L2/L3)
↓ 当前执行的指令
CPU指令寄存器

2.数据结构

数据结构是计算机存储、组织数据的方式,选择合适的数据结构可以大大提高程序的效率。

txt 复制代码
数据结构
├── 线性数据结构
│   ├── 数组 (Array)
│   ├── 链表 (Linked List)
│   ├── 栈 (Stack)
│   ├── 队列 (Queue)
│   └── 哈希表 (Hash Table)
├── 树形数据结构
│   ├── 二叉树 (Binary Tree)
│   ├── 二叉搜索树 (BST)
│   ├── 平衡树 (AVL, 红黑树)
│   ├── 堆 (Heap)
│   ├── B树/B+树
│   └── Trie树
├── 图形数据结构
│   ├── 邻接矩阵
│   ├── 邻接表
│   ├── 边列表
│   └── 十字链表
└── 特殊数据结构
    ├── 并查集 (Union-Find)
    ├── 布隆过滤器 (Bloom Filter)
    ├── 跳表 (Skip List)
    └── 位图 (Bitmap)

3.注意内存结构与数据结构中的堆和栈

1.堆(Heap)与内存堆(Heap Memory)

栈数据结构可以在不同内存 区域实现,栈内存是内存管理中的一个区域,用于存储函数调用信息和局部变量,函数调用和返回遵循LIFO原则。
栈数据结构是一种抽象数据类型,遵循LIFO(后进先出)原则。

相关推荐
彧azz6 分钟前
算法设计与分析:贪心与动态规划
数据结构·学习·算法·贪心算法·动态规划
景熙55231 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
wabs6666 小时前
关于二叉树【力扣572.另一棵树的子树的思考】
数据结构·c++·算法·leetcode·二叉树
雨落在了我的手上8 小时前
Java数据结构(十四):Map和Set
数据结构
码行山野赴时序归途8 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
船厂电气自动化ai大模型10 小时前
AI大模型与数学|第81天 课程:正交向量、正交基、格拉姆‑施密特(Gram‑Schmidt)正交化
开发语言·数据结构·人工智能·线性代数·机器学习
库玛西10 小时前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
careathers11 小时前
【数据结构】队列
java·数据结构
Rabitebla12 小时前
【Linux系统编程】指令(三):创建、删除、复制、移动、看内容
linux·数据结构·c++·算法
我不会起名字32213 小时前
一天一道力扣Hot100(36):深度优先算法---组合总和
数据结构·c++·后端·python·算法·go