数据结构javascript版下

set集合:

集合是数学中的一个基本概念,表示具有某种特性的对象汇总成的集体。在ES6中也引入了集合类型Set, Set和Array有一定程度的相似,不同的是Set中不允许出现重复的元素而且是无序的
一个典型的Set应该具有以下方法:
values:返回集合中的所有元素
size:返回集合中元素的个数
has:判断集合中是否存在某个元素
add:向集合中添加元索
remove:从集合中移除某个元素
union:返回两个集合的并集
intersection:返回两个集合的交集
difference:返回两个集合的差集
subset:判断个集合是否为另一 个集合的子集

哈希表:

Hash Table是一 种用于存储键值对(key value pair) 的数据结构,因为Hash Table根据key查询va lue的速度很快,所以它常用于实现Map、Dictinary、0bject等数据结构,
一个Hash Table通常具有下列方法:
add: 增加一组键值对
remove:删除-组键值对
Lookup:查找个键对应的值 

树:
Tree的数据结构和自然界中的树极其相似,有根、树枝、叶子,如上图所示。Tree是一种多 层数据结构,与Array、 Stack、 Queue相比是一种非线性的数据结构, 在进行插入和搜索操作时很高效。
在描述-个Tree时经常 会用到下列概念: 
Root (根) :代表树的根节点,根节点没有父节点
Parent Node (父节点) :一个节点的直接上级节点,只有一个
Child Node (子节点) :一个节点的直接下级节点,可能有多个
Siblings (兄弟节点) :具有相同父节点的节点
Leaf (叶节点) :没有子节点的节点
Edge (边) :两个节点之间的连接线
Path (路径) :从源节点到目标节点的连续边
Height of Node (节点的高度) :表示节点与叶节点之间的最长路径上边的个数
Height of Tree (树的高度) :即根节点的高度
Depth of Node (节点的深度) : 表示从根节点到该节点的边的个数
Degree of Node (节 点的度) :表示子节点的个数
一个二叉查找树应该具有以下常用方法:
add:向树中插入一个节点
findMin:查找树中最小的节点
findMax:查找树中最大的节点
find:查找树中的某个节点
isPresent:判断某个节点在树中是否存在
remove:移除树中的某个节点

图:

Graph是节点(或顶点)以及它们之间的连接(或边)的集合。Graph也可以称为Network (网络) 。根据节点之间的连接是否有方向又可以分为Directed Graph (有向图)和Undrected Graph (无向图)。Graph在实际生活中有很多用途,比如:导航软件计算最佳路径,社交软件进行好友推荐等等
Graph通常有两种表达方式;
Adjaceny List (邻接列表) :邻接列表可以表示为左侧是节点的列表,右侧列出它所连接的所有其他节点
Adjacency Matrix (邻接矩阵)邻接矩阵用矩阵 来表示节点之间的连接关系,每行或者每列表示一个节点,行和列的交叉处的数字表示节点之间的关系: 0用连接,1表示有连接,大于1表示不同的权重。
访问Graph中的节点需要使用遍历算法,遍历算法又分为广度优先和深度优先,主要用于确定目标节点和根节点之间的距离,
在Javascript中,Graph可以用一个矩阵(二 维数组)表示,广度优先搜索算法可以实现如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值