快速引见8种常用数据结构
数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。 数据结构在计算机迷信和软件工程范围具有普遍而多样的用途。
简直一切已开发的顺序或软件系统都运用数据结构。 此外,数据结构属于计算机迷信和软件工程的基础。 当触及软件工程面试成绩时,这是一个关键主题。 因此,作为开发人员,我们必须对数据结构有充沛的了解。
在本文中,我将简明解释每个顺序员必须知道的8种常用数据结构。
1.数组
数组是固定大小的结构,可以包容相反数据类型的项目。 它可以是整数数组,浮点数数组,字符串数组或什至是数组数组(例如二维数组)。 数组已树立索引,这意味着可以停止随机拜访。
Fig 1. Visualization of basic Terminology of Arrays
数组运算
遍历:遍历一切元素并停止打印。
插入:将一个或多个元素插入数组。
删除:从数组中删除元素
搜索:在数组中搜索元素。 您可以按元素的值或索引搜索元素
更新:在给定索引处更新现有元素的值
数组的运用
用作构建其他数据结构的基础,例如数组列表,堆,哈希表,向量和矩阵。
用于不同的排序算法,例如插入排序,快速排序,冒泡排序和兼并排序。
2.链表
链表是一种顺序结构,由相互链接的线性顺序项目序列组成。 因此,您必须顺序拜访数据,并且无法停止随机拜访。 链接列表提供了静态集的复杂灵敏的表示方式。
让我们思索以下有关链表的术语。 您可以经过参考图2来取得一个明晰的主意。
链表中的元素称为节点。
每个节点都包含一个密钥和一个指向其后继节点(称为next)的指针。
名为head的属性指向链接列表的第一个元素。
链表的最后一个元素称为尾。
Fig 2. Visualization of basic Terminology of Linked Lists
以下是可用的各种类型的链表。
单链列表—只能沿正向遍历项目。
双链表-可以在行进和前进方向上遍历项目。 节点由一个称为上一个的附加指针组成,指向上一个节点。
循环链接列表—链接列表,其中头的上一个指针指向尾部,尾号的下一个指针指向头。
链表操作
搜索:经过复杂的线性搜索在给定的链表中找到键为k的第一个元素,并前往指向该元素的指针
插入:在链接列表中插入一个密钥。 插入可以经过3种不同的方式完成; 在列表的扫尾插入,在列表的末尾插入,然后在列表的中间插入。
删除:从给定的链表中删除元素x。 您不能单步删除节点。 删除可以经过3种不同方式完成; 从列表的扫尾删除,从列表的末尾删除,然后从列表的中间删除。
链表的运用
用于编译器设计中的符号表管理。
用于在运用Alt Tab(运用循环链表完成)的顺序之间停止切换。
3.堆栈
堆栈是一种LIFO(后进先出-最后放置的元素可以首先拜访)结构,该结构通常在许多编程言语中都可以找到。 该结构被称为"堆栈",由于它相似于真实世界的堆栈-板的堆栈。
堆栈操作
下面给出了可以在堆栈上执行的2个基本操作。 请参考图3,以更好地了解堆栈操作。
Push 推送:在堆栈顶部插入一个元素。
Pop 弹出:删除最下面的元素并前往。
Fig 3. Visualization of basic Operations of Stacks
此外,为堆栈提供了以下附加功用,以反省其形状。
Peep 窥视:前往堆栈的顶部元素而不删除它。
isEmpty:反省堆栈能否为空。
isFull:反省堆栈能否已满。
堆栈的运用
用于表达式评价(例如:用于解析和评价数学表达式的调车场算法)。
用于在递归编程中完成函数调用。
4.队列
队列是一种FIFO(先进先出-首先放置的元素可以首先拜访)结构,该结构通常在许多编程言语中都可以找到。 该结构被称为"队列",由于它相似于理想世界中的队列-人们在队列中等候。
队列操作
下面给出了可以在队列上执行的2个基本操作。 请参考图4,以更好地了解堆栈操作。
进队:将元素插入队列的末尾。
出队:从队列的扫尾删除元素。
Fig 4. Visualization of Basic Operations of Queues
队列的运用
用于管理多线程中的线程。
用于实施排队系统(例如:优先级队列)。
5.哈希表
哈希表是一种数据结构,用于存储具有与每个键相关联的键的值。 此外,假设我们知道与值关联的键,则它有效地支持查找。 因此,无论数据大小如何,插入和搜索都十分有效。
(责任编辑:admin)