导航:首页 > 数据处理 > 先进数据结构是什么

先进数据结构是什么

发布时间:2023-07-23 07:22:13

1. 常用数据结构有哪些

数据结构分为8类有:数组、栈、队列、链表、树、散列表、堆、图。数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。

1、数组

数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。例如下面这段代码就是将数组的第一个元素赋值为 1。

2、栈

栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。

3、队列

队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元素为出队。

4、链表

链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。

5、树

树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。

6、散列表

散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。

7、堆

堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。

8、图

图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

2. 数据结构——优先队列

优先队列顾名思义,就是优先权最大的排在队列的头部,而优先权的判断是根据对象的compare方法比较获取的,保证根节点的优先级一定比子节点的优先级大。所以放入到优先队列的元素要么实现了Comparable接口,要么在创造这个优先队列时,指定一个比较器。

普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)知桐的行为特征。通常采用堆数据结构来实现。

在Java中也实现了自己的优先队列 java.util.PriorityQueue ,与我们自己写的不同之处在于,Java中内置的为最小堆,然后就是一些函数名不一样,底层还是维护了一个Object类型的数组,大家余闹可以戳戳看有什么不竖猛罩同,另外如果想要把最小堆变成最大堆可以给PriorityQueue传入自己的比较器。

参考:
https://blog.csdn.net/love905661433/article/details/82989608

https://www.cnblogs.com/wmyskxz/p/9301021.html

3. 栈、队列中“先进先出”,“后进先出”的含义

先进先出(FIFO,first-in,first-out)为处理从队列或堆栈发出的程序工作要求的一种方法,它使最早的要求被最先处理。后进先出,从栈中取出数据项的顺序与将它们插入栈的顺序相反。

FIFO由6个功能块组成,它们是存储体、写计数器(WP)、读计数器(RP)、满逻辑IN_FULL、空逻辑IN_EMPTY和选择逻辑SELECT。陵伍穗这是一个同步的FIFO。在时钟脉冲的上升沿作用下,当WR=0且FULL=0时,DIN的数据将压入FIFO堆栈。

在通常情况下,RP所指出的单元内容总是放于DOUT的输出数据线上,只是在RD=0且EMPTY=0时,RP的内容才改变而指向FIFO的下一个单元,下一个单元的内容替换当前内容并从DOUT输出橘弊。

应注意,在任何时候DOUT上都有一个数据输出,而不像RAM那样,只有在读有效时才有数据输出,平时为三态输出。




(3)先进数据结构是什么扩展阅读

LIFO与FIFO存储器一样没有外部地址码输入端,而是由内部的指针指示存取的地址。LIFO只需一个指针。复位时,指针指向最末一个单元(栈底)。每写入一个数据,指针减1。当指针值减为0时,表示LIFO充满数据。

每读出一个数据,指针加1。当指针值为最大值(即指向栈底)时,说明LIFO中没有数据了。通常把LIFO(堆栈)的写入操作叫压入,读出操作叫弹出。

阅读全文

与先进数据结构是什么相关的资料

热点内容
美团技术服务费折扣系数怎么续 浏览:313
涂料产品检测哪些 浏览:287
亚马逊上传的产品怎么清理 浏览:42
微分子技术用到护肤品中会怎么样 浏览:68
如何找到小程序推送消息 浏览:298
美股没有盘前交易说明什么 浏览:64
地图产品怎么传递 浏览:721
枣庄智慧经营代理哪里有店 浏览:766
制作微信小程序时摄氏度如何表达 浏览:891
数字程序卡哪里有卖 浏览:121
流沙有哪些市场 浏览:624
大数据把多少小企业搞死 浏览:100
apachedruid是什么数据库 浏览:588
手机程序包换了怎么办 浏览:648
如何清除王者荣耀微信数据 浏览:503
网络扶贫产品有哪些 浏览:384
上技术学院需要准备什么 浏览:589
数据类型哪些是字符型 浏览:33
售卖伪造3c的产品怎么判 浏览:11
哪个手机上的小程序能看电视剧 浏览:251