相当于HashMap 底层 数组+链表1.7,1.8之后数组+链表+红黑树,当链表长度大于8转换为红黑数,而红黑树作用就是把存储进来数据通过父节点和左右子节点保持左小右大的数据结构。 二叉树最大问题在于父节点,无法保持左右平衡,容易出现一边倒情况,红黑树(别称:平衡二叉树)解决此问题。 6、红黑树(平衡二叉树) 红黑树(平衡...
线性结构:元素之间存在一对一关系常见类型有: 数组,链表,队列,栈,它们之间在操作上有所区别.例如:链表可在任意位置插入或删除元素,而队列在队尾插入元素,队头删除元素,栈只能在栈顶进行插入,删除操作。例如通讯录、成绩单、花名册 树形结构:元素之间存在一对多关系,常见类型有:树(有许多特例:二叉树、平衡二叉树、...
由于数组和链表都可以组成栈,所以操作特点就需要看栈是由数组还是链表生成的了,然后就会继承相应的操作特点。 队列 队列是一种先进先出的数据结构,数组和链表也都可以生成队列。当数据进入到队列中时也是先进入的在下面后进入的再上面,但是出队列的时候是先从下面出,然后才是上面的数据出,最晚进入的队列的,最后出...
线性表详解:数据结构线性表10分钟入门 (biancheng.net)。 栈(Stack)和队列(Queue)详解 (biancheng.net)。 树 以下为树的基本概念(定义、基本操作、性质、存储结构等)、二叉树(定义、基本操作、存储、遍历等)、平衡二叉树、红黑树等。 引自:树及二叉树的基本概念_青萍之末的博客-CSDN博客。树是由一个或一个以...
队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
队列常用于广度优先搜索、任务调度等场景。 树结构是另一种非常常见地数据结构,它能高效地存储以及查找数据,且比线性结构(如数组以及链表)更加灵活。二叉树是树的一个特例被广泛应用于各种算法中比如二叉查找树(BST)可以帮助我们在O(logn)的时间复杂度内完成查找、插入以及删除操作。树结构不仅在查找数据时表现出色。
栈的基本操作包括入栈(push)和出栈(pop)。 -堆(Heap) -分为大顶堆和小顶堆。大顶堆中每个节点的值都不小于其子节点的值,小顶堆中每个节点的值都不大于其子节点的值。堆通常用数组来表示,是一种完全二叉树结构。堆在优先队列的实现、排序算法(如堆排序)等方面有广泛应用。 -树(Tree) -是一种非线性...
循环队列 3.2.3 队列的链式结构: 队列的链式表示,是一个同时带有队头指针和队尾指针的单链表,头指针指向队头结点,尾指针指向队尾结点 尾部插入,头部删除 队列的链式存储 3.3 栈和队列的应用 3.3.1 栈在括号匹配中的应用 利用栈先进后出的特点,当遇到左括号"[","{",""(“时,直接入栈。
运算是指在某种逻辑结构上施加的操作,即对逻辑结构的加工。一般来说,在每个逻辑结构上,都定义了一组基本运算,这些运算包括:建立、查找、读取、插入和删除等。 注:线性表、栈和队列中的元素具有相同的逻辑结构(即线性结构),但有不同的运算集,它们是不同的数据结构。