Java数据结构-图

什么是图?[面试5.0]

图是一组顶点和一组能将两个顶点连接的线(也称为边)组成的
自环: 即两个顶点就是自己
平行边: 连接两个顶点的两条边(连接同一对顶点的两条边)
概念了解:
拓扑排序
最短路径
联合查找算法
重点了解:
环的检测: 有向图,无向图
二部图(二分图)的检测,树的检测
图的遍历: 深度优先,广度优先
图的储存和表达方式: 邻接矩阵, 邻接链表

什么是有向图?[面试5.0]

两个顶点的边是有方向的图
出度:
一个顶点指出的边的个数
入度:
指向某个顶点的边的个数
有向路径:
由有向的顶点组成
有向环:
起点和终点相同的有向路径

什么是二分图?[面试5.0]

二分图也叫二部图,是指将图分为两组顶点,单组顶点互不相连,两组顶点之间有边相连
二分图的检测:
一般通过遍历的方式对图进行染色标记,将节点依次置为对立色,遍历完后发现:每条边都连接者对立色的话,就算检测成功

邻接矩阵的数据结构?[面试5.0]

底层是一个二维数组,二维数组的索引来表示顶点,横向和纵向的值来表示边
判断横向和纵向确定的值为1时,表示这两个索引顶点之间存在边
邻接矩阵的缺点:
邻接矩阵储存的空间复杂度为V^2,若顶点特别多,内存空间占用大
如果有(V个顶点)->查找单个顶点的邻居时需要O(V)的时间,查找整个矩阵需要O(V^2)的时间

邻接表的数据结构?[面试5.0]

底层是一个数组,每个数组元素储存一个队列,数组的索引来表示顶点,队列表示和该索引之间的边
如果有(V个顶点,E条边)->所有顶点的时间为O(v),查找所有顶点的邻居的时间为O(E),总的时间复杂度是O(V+E)

图怎么搜索?[面试5.0]

深度优先搜索:
若一个节点由兄弟节点也有子节点,那么先找子节点,若有节点被搜索过了就跳过
广度优先搜索:
若一个节点由兄弟节点也有子节点,那么先找兄弟节点,若有节点被搜索过了就跳过
和树的层序遍历是相似的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2023年Java面试宝典

您的鼓励是对我的肯定,共建希望

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值