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

相关推荐
伟大的车尔尼2 小时前
贪心的概念
数据结构·算法·贪心
AI情绪识别开源3 小时前
检信AI高一分班分科智选评估系统 v2.0测试报告
开发语言·数据结构·人工智能·科技
CoderYanger3 小时前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
雪碧聊技术4 小时前
KMP算法详解
数据结构
positive_zpc7 小时前
进阶数据结构图——关键路径(四)
数据结构·图论·关键路径
孙克旭_8 小时前
单链表进阶实操:5 道常考面试题详细解析【Java 实现】
java·开发语言·数据结构·单链表
Chester_19999 小时前
CSP202206C.角色授权
开发语言·数据结构·c++·蓝桥杯
旖旎夜光9 小时前
LeetCode 238:除自身以外数组的乘积(前缀和) —— 题解
数据结构·c++·算法·leetcode·前缀和
一条大祥脚9 小时前
26杭电暑期第八场(后半)快读|快写|tarjan|路径DP|mex转化|扫描线|前缀和|二分图
数据结构·算法·tarjan·杭电多校·强联通分量·动态规划dp
Chester_199918 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯