各种数据结构及其应用场景

本文探讨了数据结构的应用场景,包括代码区、数据区、BBS区、栈区和堆区的内存分配,以及堆栈与变量内存分配的关系。同时讲解了全局变量与静态变量的异同,强调静态变量在多源文件程序中的作用和保护机制。
摘要由CSDN通过智能技术生成

1. 常用数据结构及其应用场景:

https://www.jianshu.com/p/ec17d738327f

2. 代码可执行文件的内存占用:【https://blog.csdn.net/u012942555/article/details/48876447】

首先要来理解一下可执行文件加载进内存后形成的进程在内存中的结构,如下图:

具体一些,函数内部定义的变量,在函数执行完毕后,就会出栈。

代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。

数据区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。

BBS区:存放的是未初始化的全局变量和静态变量。

数据结构是计算机科学中的基础概念,它定义了数据的组织和存储方式,以及与这些数据操作相关的算法。常见的数据结构包括: 1. 数组(Array):一种线性数据结构,存储相同类型的元素,适用于连续访问和随机访问,如数组索引。应用场景:动态数组(如动态规划)、数组排序(如快速排序)等。 2. 链表(Linked List):由节点组成,每个节点包含数据和指向下一个节点的指针,支持高效插入和删除。链表分为单向、双向和循环链表。应用场景:队列和栈的实现,内存管理等。 3. 栈(Stack):后进先出(LIFO)的数据结构,常用于表达式求值、函数调用堆栈等。 4. 队列(Queue):先进先出(FIFO)的数据结构,如消息队列,网络通信中的数据传输等。 5. 树(Tree):非线性数据结构,分为二叉树(如二叉搜索树、AVL树、红黑树)、平衡树(如B树、B+树)等,用于文件系统、目录结构等。 6. (Graph):由顶点和边构成,用于描述复杂的关系,如社交网络、路由算法等。 7. 哈希表(Hash Table)或哈希集合(Hash Set):通过哈希函数将键直接映射到存储位置,实现快速查找,如字典和数据库索引。 8. 堆(Heap):通常用于优先队列,如最小堆(优先处理小元素)和最大堆(优先处理大元素)。 9. 字典树(Trie):用于字符串搜索和自动补全,搜索引擎和拼写检查器中常见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值