计算机存储结构

发布时间:2023年12月29日

顺序存储结构

按照逻辑关系将数据元素依次存储在物理位置上的方式,每个节点都连接着相邻的存储单元,节点之间的逻辑关系由存储单元的邻接关系来体现;
这种存储结构可以节省存储空间,但不太便于修改;
例如:数组等。

链式存储结构

不要求逻辑上相邻的节点在物理位置上也相邻,节点间的逻辑关系是由附加的指针字段表示的;
链式存储结构具有灵活性和不要求节点的物理位置相邻的特点;
它可以利用附加的指针字段来表示节点的逻辑关系,而不需要进行指针的随机存取;
链式存储结构可以充分利用存储空间,提高系统的运行效率;
例如:单向链表、双向链表、循环链表等。

索引存储结构

存储节点信息的同时,建立附件的索引表;
其优点是大大提高了数据查找的速度,但增加了存储空间的利用率;
例如:Map、B+ tree等。

散列存储

通过关键字直接计算存储地址,而不是根据地址来确定数据存储位置;
散列存储在数据结构中是一种重要的存储方式,它可以提高检索的效率,并且可以避免数据元素的碰撞;
散列存储的基本思想是:由结点的关键码值决定结点的存储地址,通过散列函数来计算存储地址;
散列存储的优点是检索速度快,存储地址可以根据具体的数据结构来确定;
例如:HashMap等。

线性结构

数据元素之间存在线性关系,其中每个元素要么属于一个前驱,要么属于一个后继;
常见的线性结构有线性表、数组、栈、队列、双队列、串等;
线性结构的特点是每个元素之间存在唯一的关系,其中每个元素都有前驱和后继;
线性结构的存储结构能够实现数据的有序管理和检索。

树结构

将数据元素之间建立了一种层次关系。属于树结构的存储结构包括普通树、二叉树、线索二叉树等;
树结构的特点是数据元素之间有层次关系,不是线性结构。

图结构

数据元素之间有网状关系的一种存储结构,属于非线性结构;
常见的图结构有树结构、图状结构等。

哈希存储结构

通过哈希函数计算出一个值,并将这个值作为存储地址来表示;
在哈希存储结构中,每个元素都有一个唯一的哈希值,该哈希值与该元素的存储地址相对应;
通过哈希存储结构,我们可以快速地检索到特定数据,并且具有较高的时间复杂度。

静态链表

用数组来描述单链表的一种存储结构,用数组元素的下标来模拟单链表的指针;
它具有两个域,data域存放数据元素,next域存放该元素的后继元素所在的数组下标;
静态链表实现插入和删除操作时只需修改游标,不需要移动表中的元素;
相比于动态链表,静态链表更便于数据的操作和管理。

双链表

每个结点都设置了一个指向前驱结点的指针域,实现了双链表的各种操作;
其结点结构为data、prior和next三个域,其中data为数据域,存放数据元素;
prior为前驱指针域,存放改结点的前驱结点的地址;
next为后继指针域,存放该结点的后继结点的地址。

间接寻址

一种将数组和指针结合起来的方式,通过指针将数组中的数据元素改为指向其他位置的指针;
这种存储结构具有顺序表随机存取的优点,同时可以解决连续存储分配带来的表长难以确定的问题。

集合

不同于数组,它没有顺序的概念,可以进行排序、搜索等操作;
而数组则是有序的元素集合,具有顺序关系;
所以,集合可以看作是一个特殊的数组。

单链表

用一组任意的存储单元存放线性表的元素,其中数据元素之间是用指针表示的,逻辑关系是用指针表示的;
单链表是顺序存取结构,其中数据元素与地址信息通过指针连接在一起;
由于结点是由两部分组成的,即数据元素和地址信息,所以单链表的时间复杂度是O(n)。

堆积存储结构

一种适用于大规模数据存储的存储结构,所有数据按照插入顺序依次存放在一个堆积中,并用指针将它们连接起来;
这种存储结构的操作效率较低,但占用空间少。

完全二叉树

指的是从根起,自上而下,自左而右,给满二叉树的每个结点从1到n连续编号的树;
完全二叉树具有以下特点:
任意一个结点都不能与至少一个节点相连;
任意一个节点都不能有两个子节点;
任意一个节点都不能有两个连续的子节点。

Parents-Children表示法

通过吸收孩子和父母表示法来实现;
在表示法的基础上,给每个元素都添加了一个孩子的地址,这样就可以方便地存储和查找孩子。

是一种后进先出(LIFO)的数据结构,栈顶是数据栈的顶部,栈内的数据压入栈中,栈顶弹出,然后栈顶的下一个数据就是下一个被压入栈中的数据;
栈的特点是先进后出,所以压入栈中的数据会先弹出,然后压入栈中的数据会后退;
栈的应用场景很多,比如函数调用栈、表达式求值栈等;
栈是计算机编程中的一个重要概念,它具有快速内存访问和数据存储的优势。

Huffman树

任意节点的左子树包含任意节点的右子树,且任意节点的左子树包含任意节点的右子树;
这种存储结构的优势在于可以方便地插入、删除和查找元素,特别适用于动态数据和需要快速查找的场合。

平衡树存储结构

一种基于树结构的存储结构,它通过动态平衡调整来提高数据检索效率;
每个节点都代表一条记录,并且每个节点都有若干个子节点,这些子节点代表比该节点的键值小或大的记录;
平衡树通过动态分区的方式实现数据的存储和检索,避免了相同子节点被重复计算的情况;
这使得平衡树存储结构具有高效、灵活和可扩展的特点。

文章来源:https://blog.csdn.net/weixin_42979360/article/details/135292084
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。