C++_数据结构
数据结构是计算机存储、组织数据的方式,它使得数据能够被高效地访问和修改。根据数据元素之间关系的不同特性,数据结构可以分为多种类型。主要可以分为两大类:逻辑结构和物理结构(也称存储结构)。
一、逻辑结构(按数据元素之间的逻辑关系分类)
逻辑结构描述的是数据元素之间的抽象关系,与存储无关。
集合结构(Set)特点:数据元素同属一个集合,元素之间没有其他关系。例子:{1, 3, 5, 7}线性结构(Linear Structure)特点:数据元素之间是一对一的线性关系,有唯一的前驱和后继(除首尾元素)。常见类型:数组(Array)链表(Linked List)栈(Stack)——后进先出(LIFO)队列(Queue)——先进先出(FIFO)双端队列(Deque)树形结构(Tree Structure)特点:数据元素之间存在一对多的层次关系。常见类型:二叉树(Binary Tree)二叉搜索树(BST)平衡二叉树(AVL Tree)堆(Heap)B树、B+树字典树(Trie)图状结构(Graph Structure)特点:数据元素之间是多对多的关系,最为复杂。常见类型:有向图无向图加权图(网络)应用:社交网络、地图导航、路径规划等。
二、物理结构(存储结构)
物理结构是指数据在计算机中的存储方式。
顺序存储结构(Sequential Storage)特点:用一组连续的存储单元依次存储数据元素。优点:支持随机访问。缺点:插入/删除效率低。例子:数组链式存储结构(Linked Storage)特点:用一组任意的存储单元存储数据元素,通过指针链接。优点:插入/删除效率高。缺点:不支持随机访问,需额外空间存储指针。例子:链表索引存储结构(Indexed Storage)特点:建立索引表,通过索引快速定位数据。例子:数据库索引散列存储结构(Hash Storage)特点:通过哈希函数将关键字映射到存储位置。优点:查找速度快(平均O(1))。缺点:可能产生冲突。例子:哈希表(Hash Table)
三、常见数据结构总结表