数据结构解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 数据结构解析

什么是数据结构? ??

学好数据结构首先要明白数据结构是什么。

数据结构是研究计算机数据之间的关系,包括数据的逻辑结构和存储结构及其操作。

我们首先区别一下数据跟数据元素。

数据(data): 数据即信息载体

数据元素:数据元素是数据的基本单位(记录)

逻辑结构:表示数据运算之间的抽象关系

分为集合,线性结构(线性表,栈 ,队列) 非线性结构(树形结构,图形结构)

存储结构是什么

存储结构:逻辑结构在计算机中的具体实现方法

1.顺序存储(sequential Storage):将数据结构中将各元素按照其逻辑顺序存放于一片连续

存储空间中 (缺点:删除或者插入数据复杂,需要一片连续存储空间)

2.链式存储(重要):将数据结构中各种元素分布到存储器的不同点,用地址或链指针方法建立它们之间的联系

3.索引存储:在存储数据的同时,建立一个附加的索引表 即索引存储结构=数据文件+索引表 (类似电话簿)索引表类似目录

4.散列存储:根据数据元素的特殊字段(key)计算数据元素存放地址,然后根据元素地址按地址存放数据

注:线性表的顺序存储叫顺序表,线性表的链式存储叫链表

线性表之单链表(重要):将线性表中各元素分布在存储器的不同存储块。称为结点

通过地址或指针建立元素之间的联系

线性表之双链表:每一个链表中既有前驱节点也有后继节点

栈(特殊线性表):栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)

运行进行操作的一端称为栈顶 ,另一端固定的称为栈底。特点后进先出(LIFO)

队列:队列是限制在两端进行插入操作和删除操作的的线性表,允许进行存入操作的一端为队尾

允许进行删除操作的一端称为队头。特点:先进先出(FIFO)

树:树是由n个节点的有限集合T,它满足二个条件:有且仅有一个特定的根(root)的节点其余的节点可以分为m(m>0)个互不相交的有限集合T1,T2,Tn....其中每一个集合是一颗树,其称为根的子树。

更新ing。。。。。

目录
相关文章
|
22天前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
22天前
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树
|
1月前
|
搜索推荐 索引
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(二)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
1月前
|
搜索推荐 C++
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(一)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
1月前
|
存储 编译器 C++
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
|
1月前
|
存储 算法 搜索推荐
数据结构--堆的深度解析
数据结构--堆的深度解析
|
1月前
|
人工智能 搜索推荐 算法
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理(三)
【初阶数据结构】深度解析七大常见排序|掌握底层逻辑与原理
|
18天前
|
C语言
【数据结构】栈和队列(c语言实现)(附源码)
本文介绍了栈和队列两种数据结构。栈是一种只能在一端进行插入和删除操作的线性表,遵循“先进后出”原则;队列则在一端插入、另一端删除,遵循“先进先出”原则。文章详细讲解了栈和队列的结构定义、方法声明及实现,并提供了完整的代码示例。栈和队列在实际应用中非常广泛,如二叉树的层序遍历和快速排序的非递归实现等。
94 9
|
9天前
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
19 1
|
12天前
|
存储 算法 Java
数据结构的栈
栈作为一种简单而高效的数据结构,在计算机科学和软件开发中有着广泛的应用。通过合理地使用栈,可以有效地解决许多与数据存储和操作相关的问题。

推荐镜像

更多