数据结构 的分类

数据结构

一般将数据结构分为两大类:
 线性数据结构和非线性数据结构。
 线性数据结构有:
 线性表、栈、队列、串、数组和文件;
 非线性数据结构有:
 散列表、树和图。

线性表
线性表的逻辑结构是n个数据元素的有限序列:
(a1, a2 ,a3,…an)
n为线性表的长度(n≥0),n=0的表称为空表。
数据元素呈线性关系。必存在唯一的称为“第一个”的数据元素;必存在唯一的称为“最后一个”的数据元素;除第一个元素外,每个元素都有且只有一个前驱元素; 除最后一个元素外,每个元素都有且只有一个后继元素。
所有数据元素在同一个线性表中必须是相同的数据类型。




线性表按其存储结构可分为顺序表和链表。用顺序存储结构存储的线性表称为顺序表;用链式存储结构存储的线性表称为链表。
将线性表中的数据元素依次存放在某个存储区域中,所形成的表称为顺序表。一维数组就是用顺序方式存储的线性表。


链表(数据经常插入删除用链表)






栈(Stack)也是一种特殊的线性表,是一种后进先出(LIFO)的结构。
栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶(top),表头称为栈底(bottom)。
栈的物理存储可以用顺序存储结构,也可以用链式存储结构。


队列(Queue)是限定所有的插入只能在表的一端进行,而所有的删除都在表的另一端进行的线性表。
表中允许插入的一端称为队尾(Rear),允许删除的一端称为队头(Front)。
队列的操作是按先进先出(FIFO)的原则进行的。
队列的物理存储可以用顺序存储结构,也可以用链式存储结构。



散列表又称为哈希表。散列表算法的基本思想是:
 以结点的关键字为自变量,通过一定的函数关系(散列函数)计算出对应的函数值,以这个值作为该结点存储在散列表中的地址。
当散列表中的元素存放太满,就必须进行再散列,将产生一个新的散列表,所有元素存放到新的散列表中,原先的散列表将被删除。在C#语言中,通过负载因子(load factor)来决定何时对散列表进行再散列。例如:如果负载因子是0.75,当散列表中已经有75%的位置已经放满,那么将进行再散列。
负载因子越高(越接近1.0),内存的使用效率越高,元素的寻找时间越长。负载因子越低(越接近0.0),元素的寻找时间越短,内存浪费越多。





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSDN是一个以技术为主题的社区平台,其中涵盖了各种编程和计算机科学相关的内容。在数据结构这一领域中,CSDN对其进行了细分和分类,以方便用户查找和学习相关知识。 CSDN将数据结构分为几个主要分类: 1. 线性结构:这一分类主要包括各种线性数据结构,例如数组、链表、栈和队列等。线性结构的特点是数据元素之间存在一对一的关系,可以按照特定的顺序存储和访问。 2. 树结构:包括二叉树、平衡树、二叉搜索树等。树结构具有层次分明的特点,可以用于表示层级关系和递归结构。其中二叉搜索树是常用的数据结构之一,能够快速地进行查找、插入和删除操作。 3. 图结构:图是由节点和边组成的集合,用于表示各种复杂的关系和网络结构。在图结构分类中,常见的包括有向图、无向图、带权图等。图结构的应用广泛,例如社交网络、路由算法等领域。 4. 散列结构:散列结构是通过散列函数将数据元素映射到存储位置的一种数据结构。散列结构可以实现快速的查找和插入,常见的应用有哈希表、集合和字典等。 此外,CSDN还对数据结构进行了更细致的分类,如查找算法、排序算法等。这些分类有助于用户深入了解和学习数据结构,掌握各种数据结构的基本原理和应用场景。 总之,CSDN通过分类整理和归纳,为用户提供了一个方便、系统的学习数据结构的平台,使用户能够有针对性地查找和学习相关知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值