Copyright ©2015- 海马课堂网络科技(大连)有限公司 办公地址:辽宁省大连市高新技术产业园区火炬路32A号创业大厦A座18层1801室
添加微信
咨询辅导
数据结构是一种用于存储和组织数据的存储器。它是一种在计算机上排列数据的方式,以便有效地访问和更新数据。
数据结构不仅用于组织数据,还用于处理、检索和存储数据。它还用于处理、检索和存储数据。数据结构有不同的基本类型和高级类型,几乎每个已开发的程序或软件系统都会用到。因此,我们必须充分了解数据结构。
一、数据结构分类
线性数据结构:线性数据结构:数据元素按顺序或线性排列的数据结构,其中每个元素都与其上一个和下一个相邻元素相连,这种数据结构称为线性数据结构。
线性数据结构的例子有数组、栈、队列、链表等。
静态数据结构:静态数据结构有固定的内存大小。访问静态数据结构中的元素比较容易。
数组就是这种数据结构的一个例子。
动态数据结构:动态数据结构的大小不固定。它可以在运行时随机更新,这在代码的内存(空间)复杂度方面被认为是高效的。
这种数据结构的例子有队列、堆栈等。
非线性数据结构:数据元素不按顺序或线性放置的数据结构称为非线性数据结构。在非线性数据结构中,我们不能只在一次运行中遍历所有元素。
非线性数据结构的例子有树和图。
二、最流行的数据结构:
1.数组
数组是存储在连续内存位置的数据项集合。其原理是将相同类型的多个项目存储在一起。这样,只需将偏移量加到基值(即数组第一个元素的内存位置,一般用数组名称表示)上,就能更轻松地计算每个元素的位置。
2.关联列表
与数组一样,链接表也是一种线性数据结构。与数组不同的是,链接表元素不是存储在一个连续的位置,而是使用指针将元素链接起来。
3.堆栈
堆栈是一种线性数据结构,按照特定的顺序执行操作。顺序可以是 LIFO(后进先出)或 FILO(先进后出)。在堆栈中,所有插入和删除操作只允许在列表的一端进行。
堆栈操作:
push():执行此操作时,一个元素将被插入堆栈。
pop():执行此操作时,将从堆栈顶部移除一个元素并返回。
top():此操作将返回最后插入的、位于堆栈顶部的元素,但不会删除该元素。
size(): 返回堆栈的大小:此操作将返回堆栈的大小,即堆栈中存在的元素总数。
isEmpty():此操作表示堆栈是否为空。
4.队列
与栈一样,队列也是一种线性结构,在执行操作时遵循特定的顺序。其顺序是先进先出(FIFO)。在队列中,项目从一端插入,从另一端删除。队列的一个很好的例子就是资源消费者队列,先到的消费者先得到服务。栈和队列的区别在于删除。在栈中,我们删除最近添加的项目;在队列中,我们删除最近添加最少的项目。
队列操作:
Enqueue():向队列末尾添加(或存储)一个元素。
Dequeue(): 从队列中删除元素:从队列中删除元素。
Peek() 或 front():获取队列前节点的可用数据元素,但不删除该元素。
rear():该操作返回后端的元素,但不删除该元素。
isFull():验证队列是否已满。
isNull():检查队列是否为空。
5.二叉树
与数组、链接列表、栈和队列这些线性数据结构不同,树是分层数据结构。二叉树是一种树形数据结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。它主要使用链接来实现。
二叉树由指向树中最顶端节点的指针表示。如果树是空的,那么 root 的值就是 NULL。二叉树节点包含以下部分。
✨数据
✨指向左侧子代的指针
✨指向右侧子节点的指针
6.二叉搜索树
二叉搜索树是一种具有附加属性的二叉树:
✨根节点的左边部分包含的键小于根节点键。
✨根节点的右侧部分包含大于根节点键值的键值。
✨二叉树中没有重复的键。
具有以上属性的二叉树称为二叉搜索树(BST)。
海马课堂专业课程辅导做出以下新改变啦:
⏩试听课全面升级,不满意退50%,
⏩课程辅导产品升级,赠送考前保障呦
⏩辅导不满意可以随心退!
海马课堂,3500+严选硕博学霸师资,针对学生的薄弱科目和学校教学进度,匹配背景相符的导师,根据学生情况进行1V1专属备课,上课时间灵活安排,中英双语详细讲解课程中的考点、 难点问题,并提供多方位的课后辅导,辅助学生掌握全部课程知识,补足短板。
阅读原文:https://www.highmarktutor.com/news/16040_60.html
版权作品,未经海马课堂 highmarktutor.com 书面授权,严禁转载,违者将被追究法律责任。