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(后进先出)原则。