【数据结构】图的遍历
创始人
2024-02-10 17:57:34
0

深度优先遍历

 深度优先遍历思想

对于图:选中一个结点,访问和其相邻的、未被访问过的点,全部访问完毕后回退到上一个结点,直至全部结点访问完毕,类似于图的先序遍历,如有邻接表,则按邻接矩阵的顺序遍历。

时间复杂度:O(|v|)

对于邻接矩阵:选中一个结点,寻找其对应列标,找到后在此行依次从左向右遍历,如为1则对其行标的元素进行访问,然后寻找此元素的列标,与上一步进行循环,遇到访问过的结点则跳过,如一个列标行所有为1的结点访问完毕,则回溯到上一层。

时间复杂度:O(|v|²)  每行v,v行v²

对于邻接表:选中一个头结点,对其表结点从左向右进行访问,访问到第一个表结点后跳转到其对应的头结点,与上一步进行循环,如遇到访问过的结点则跳过,如一个头结点的表结点全部访问完毕则跳转至上一层头结点。

时间复杂度:O(|v|+|E|)         访问头结点:O(|v|)  访问头结点的邻接结点:O(|E|)

同一个图的邻接矩阵表示唯一,因此深度优先遍历序列唯一

同一个图的邻接表表示不唯一(表结点顺序可任意),因此深度优先遍历序列不唯一


 深度优先遍历——伪代码

bool visited[MaxVertexNum] //存储访问状态的数组void DFSTraverse(Graph G){int v;for(v=0;v=0;w=NextNeighbor(G,v,w))if(!visited[w]){DFS(G,w);} //if
}

广度优先遍历 

 广度优先遍历思想

对于图:选中一个结点,访问和其相邻的、未被访问过的所有的顶点,每个顶点分别呈辐射状向下遍历,相当于树的层次遍历

对于邻接表:选中一个结点,寻找其对应头结点,找到后在此行的所有表结点全部入队,并按照从左到右的顺序依次将表结点元素的对应头结点进行上一步操作,直至所有元素都被访问过

时间复杂度:O(|v|+|E|)   访问头结点:O(|v|)  访问头结点的邻接结点:O(|E|)

 


  广度优先遍历——伪代码

 总体思想:入队一个结点,将其出队并让其所有邻接结点入队,依次循环,直至队列为空 

 如果需要遍历的图G不是连通图,假设G有2个连通分量,BFSTraverse函数的第二个for循环会对每个连通分量都使用BFS来保证全部遍历完成,即找到第一个未访问结点后对其进行BFS直至整个连通分量都被遍历完毕,然后寻找下一个未被访问的结点,其所在连通分量必定都未被访问

bool visited[MaxVertexNum] //存储访问状态的数组void BFSTraverse(Graph G){int i;for(i=0;i=0;w=NextNeighbor(G,v,w))//依次寻找v的所有邻接顶点w,每找到一个就循环一次if(!visited[w]){ //如果顶点w未被访问过visit(w); //访问顶点wvisited[w]=TRUE; //将顶点w置为已访问EnQueue(Q,w); //将顶点w入队}//if}//while
}

 时间复杂度分析:

对于递归工作栈:O(|v|)

共有v个顶点

对于邻接矩阵:O(|v|²) 

共有v行v列,全部遍历为v²,查找每个邻接点为O(|v|),总共有v个顶点

对于邻接表:O(|v|+|E|)   

访问头结点:O(|v|) ,访问头结点的邻接结点:O(|2E|)

相关内容

热门资讯

电力数据透视“两新”政策成效显... 电力作为经济运行的“晴雨表”与政策落地的“校验仪”,精准刻画着大规模设备更新和消费品以旧换新“两新”...
人民财评:反内卷需要法律“明文... 陈白 10月15日,新修订的《中华人民共和国反不正当竞争法》(以下简称《反不正当竞争法》)正式施行。...
感知山东|淄博市沂源县层级过滤... 近年来,沂源县聚焦道路交通矛盾纠纷,探索建立行政调解、行业调解、人民调解、诉前调解、诉讼调解多层级矛...
长期专门拘禁、绑架中国公民,一... 据柬埔寨西哈努克省警察局发布消息,柬警方近日破获一起涉中国公民安全案件并抓获相关嫌疑人。 9月20日...
最高人民法院发布依法惩治射钉器... 枪支、弹药、爆炸物管理直接关系公共安全和社会大局稳定,直接关系人民群众生命财产安全和国家长治久安。近...
欧洲首队!世预赛-凯恩两球 英... 北京时间10月15日凌晨02时45分,2026年美加墨世界杯欧洲区K组第八轮展开角逐,英格兰做客里加...
继母以痴呆父亲名义起诉女儿分房... 法治日报记者 张海燕 老父亲患上血管性痴呆,女儿竟收到父亲的起诉状,要求分割共有房产,这一切原来是继...
全国首创 辽宁出台政策规范管理... 人民网沈阳10月15日电 (孝媛)日前,辽宁省民政厅印发《关于规范全省老年人能力评估机构管理的指导意...
刚刚,跳水!超20万人爆仓 【导读】加密货币市场集体走低,超20万人被爆仓 中国基金报记者 晨曦 刚刚,加密货币市场再度跳水! ...