js常见的八种数据结构--数组、栈、队列、链表、散列表、树、堆、图
2019-04-22 15:42
197 查看
数组(Array)
数组是最简单、也是使用最广泛的数据结构。数组是可以在内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。
栈(Stack)
栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。
队列(Queue)
队列与栈一样,也是一种线性表,不同的是,队列可以在一端添加元素,在另一端取出元素,也就是:先进先出。从一端放入元素的操作称为入队,取出元素为出队。
链表(Linked List)
链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,每个元素包含两个结点,一个是存储元素的数据域 (内存空间),另一个是指向下一个结点地址的指针域。根据指针的指向,链表能形成不同的结构,例如单链表,双向链表,循环链表等。
散列表(Hash)
散列表,也叫哈希表,是根据关键码和值 (key和value) 直接进行访问的数据结构,通过key和value来映射到集合中的一个位置,这样就可以很快找到集合中的对应元素。
树(Tree)
树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。在日常的应用中,我们讨论和用的更多的是树的其中一种结构,就是二叉树。
堆(Heap)
堆是一种比较特殊的数据结构,可以被看做一棵树的数组对象,具有以下的性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。
图(Graph)
图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
相关文章推荐
- 15 API-集合(Collection(功能,迭代器),List(List特有迭代器,并发异常),常见数据结构图示(栈,队列,数组,链表))&对象数组
- 常见的数据结构(栈、队列、数组、链表和红黑树)
- 用单链表与数组实现队列先进先出的数据结构
- 【郝斌数据结构自学笔记】57-59_递归8 _ 汉诺塔_1线性结构总复习 2线性结构和非线性结构关系 3栈队列链表数组之间的关系【重点】
- 基本数据结构——数组、队列、链表
- 算法与数据结构-数组/链表/堆/栈/队列的存储
- 线性数据结构(线性表、链表、栈、队列、散列表)
- js数组实现队列数据结构与练习使用
- 数据结构的栈,队列,数组,链表讲解
- 目标:完成数组和链表创建队列,完成其余基本数据结构。
- js实现栈、队列、链表数据结构
- 数据结构----数组队列和链表的总结和心得
- Lua中使用table实现的其它5种数据结构(数组、链表、队列、集合和包、StringBuild)
- java常用的几种数据结构,堆栈,队列,数组,链表,哈希表
- 常见的线性列表结构---【数组、链表、栈、队列、堆】
- 目标:完成数组和链表创建队列,完成其余基本数据结构。
- 【数据结构】数组、链表、栈、队列、二叉树
- 数据结构与算法(Python)——常见数据结构Part1(数组和链表)
- 剑指offer-第二章数据结构(数组,字符串,链表,树,栈与队列)及例题
- Java中链表、堆栈、队列、二叉树、散列表等数据结构的实现