數據結構常見圖算法

深度優先搜索

時間復雜度 領接矩陣表示        O( n2) 領接表表示      O(n+e) 

空間復雜度   O(e)

DFS與回溯法類似,一條路徑走到底后需要返回上一步,搜索第二條路徑。在樹的遍歷中,首先一直訪問到最深的節點,然后回溯到它的父節點,遍歷另一條路徑,直到遍歷完所有節點。

利用拓撲排序表可以方便的解決很多相關的圖論問題,如最大路徑問題等等。一般用棧數據結構來輔助實現DFS算法。根據深度優先搜索的特點,采用遞歸函數實現比較簡單。

遞歸與棧

廣度優先搜索

時間復雜度 領接矩陣表示O( e2 ) 領接表表示       O(n+e)

先訪問完當前頂點的所有鄰接點,然后再訪問下一層的所有節點,該算法適用于解決最短、最小路徑等問題,但是構建廣度優先算法需要維護自己的隊列

第一步:遍歷圖中所有的頂點,將入度為0的頂點 入隊列

第二步:從隊列中出一個頂點,打印頂點,更新該頂點的鄰接點的入度(減1)如果鄰接點的入度減1之后變成了0,則將該鄰接點入隊列。

第三步:一直執行上面 第二步,直到隊列為空。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/39398.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39398.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/39398.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼隨想錄(回溯)

組合&#xff08;Leetcode77&#xff09; 思路 用遞歸每次遍歷從1-n得數&#xff0c;然后list來記錄是不是組合到k個了&#xff0c;然后這個每次for循環的開始不能和上一個值的開始重復&#xff0c;所以設置個遍歷開始索引startindex class Solution {static List<List<…

榮耀大橫評,睿藍7-450榮耀版卷出來的性價比之王

手握11萬左右預算,如何在市場內選出一輛合適自己的車?榮耀版車型無疑是當下的最佳答案。在眾多榮耀版車型中,比亞迪宋PLUS榮耀版EV520km領先型(后統稱宋PLUS榮耀版)、比亞迪元PLUS榮耀版430km領先型(后統稱元PLUS榮耀版)、比亞迪海豚PLUS榮耀版420km時尚版(后統稱海豚榮耀版)、…

中英雙語介紹美國的州:南卡羅來納州(South Carolina)

中文版 南卡羅來納州簡介 南卡羅來納州&#xff08;South Carolina&#xff09;位于美國東南部&#xff0c;是一個以其豐富的歷史、自然美景和多樣化的經濟而聞名的州。以下是對南卡羅來納州的詳細介紹&#xff0c;包括其地理位置、人口、經濟、教育、文化和主要城市等。 地…

【CSAPP】-binarybomb實驗

目錄 實驗目的與要求 實驗原理與內容 實驗設備與軟件環境 實驗過程與結果&#xff08;可貼圖&#xff09; 操作異常問題與解決方案 實驗總結 實驗目的與要求 1. 增強學生對于程序的機器級表示、匯編語言、調試器和逆向工程等方面原理與技能的掌握。 2. 掌握使用gdb調試器…

Python學習篇:PyCharm的基本使用教程(二)

目錄 1 前言 2 創建Python項目 3 創建Python文件 4 編寫 Hello World 并運行 5 PyCharm界面簡介 1 前言 PyCharm的使用貫穿整個Python的學習&#xff0c;所以單獨拿出來出教程不合適&#xff0c;說多了對于新手來說也還是不明白&#xff0c;這里我們先從學習開始前大家需…

【基礎算法總結】分治—快排

分治—快排 1.分治2.顏色分類3.排序數組4.數組中的第K個最大元素5.庫存管理 III 點贊&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;關注&#x1f496;&#x1f496; 你的支持是對我最大的鼓勵&#xff0c;我們一起努力吧!&#x1f603;&#x1f603; 1.分治 分治…

搜狐新聞HarmonyOS版本 push 推送開發

背景 搜狐新聞作為HarmonyOS的合作伙伴&#xff0c;于2023年12月成功上架鴻蒙單框架應用市場&#xff0c;成為首批鴻蒙應用矩陣的一員。 新聞類推送作為應用的重要組成部分&#xff0c;在二期規劃中&#xff0c;我們將推送功能列為核心功能模塊。本文將推送集成過程中的步驟和…

JAVA婦產科專科電子病歷系統源碼,前端框架:Vue,ElementUI

JAVA婦產科專科電子病歷系統源碼&#xff0c;前端框架&#xff1a;Vue&#xff0c;ElementUI孕產婦健康管理信息管理系統是一種將孕產婦健康管理信息進行集中管理和存儲的系統。通過建立該系統&#xff0c;有助于提高孕產婦健康管理的效率和質量&#xff0c;減少醫療事故發生的…

新華三通用大模型算力底座方案:為AI時代注入強大動力

在人工智能技術日新月異的今天&#xff0c;大模型作為推動AI進步的重要驅動力&#xff0c;是百行百業不斷追逐的熱點。大模型以其強大的泛化能力、卓越的模型效果和廣泛的應用場景&#xff0c;正改變著人工智能的未來。作為國內領先的ICT解決方案提供商&#xff0c;新華三集團憑…

Linux kfence使用與實現原理

0 背景 為了更好的檢測linux kernel中內存out-of-bounds、mem-corruption、use-after-free、invaild-free等問題&#xff0c;調研了kfence功能&#xff08;該功能在linux kernel 5.12引入&#xff09;&#xff0c;幫助研發更好的分析與定位這類內存錯誤的問題。 一、kfence介…

【ES】--Elasticsearch的Nested類型介紹

目錄 一、問題現象二、普通數組類型1、為什么普通數組類型匹配不準?三、nested類型四、nested類型查詢操作1、只根據nested對象內部數組條件查詢2、只根據nested對象外部條件查詢3、根據nested對象內部及外部條件查詢4、向nested對象數組追加新數據5、刪除nested對象數組某一個…

2025中國淄博化工展|淄博化工技術展|淄博化工裝備展

CTEE2025第九屆中國&#xff08;淄博&#xff09;化工技術裝備展覽會 時間&#xff1a;2025年5月16-18日 地點&#xff1a;山東淄博國際會展中心 主辦單位:山東省機械工業科學技術協會 青島藍博國際會展有限公司 眾所周知&#xff0c;山東省是我國化工大省。2023年上半年&am…

Go GMP:并發編程實踐

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

0053__CancelIO的作用:防止為發送的數據丟失

CancelIO的作用&#xff1a;防止為發送的數據丟失-CSDN博客 cancelIoEx 函數 (ioapiset.h) - Win32 apps | Microsoft Learn

【Java】Logbook優化接口調用日志輸出,優雅!

logbook 簡介 很多人可能沒有接觸過 logbook&#xff0c;但它的確是一個很好用的日志框架。引用官網的介紹 Logbook 是一個可擴展的 Java 庫&#xff0c;可以為不同的客戶端和服務器端技術啟用完整的請求和響應日志記錄。它通過以下方式滿足了特殊需求&#xff1a; 允許 Web 應…

計算機網絡期末復習4(武夷學院版)

第四章 網絡層 1、網際協議IP以及配套協議&#xff08;書P119&#xff09; 網際協議&#xff08;IP&#xff09;&#xff1a;IP協議是網絡層的核心協議&#xff0c;負責數據包的編址和路由。它定義了數據包的格式和處理規則。 配套協議&#xff1a;地址解析協議ARP&#xf…

【工具】VS Code使用global插件實現代碼跳轉

&#x1f41a;作者簡介&#xff1a;花神廟碼農&#xff08;專注于Linux、WLAN、TCP/IP、Python等技術方向&#xff09;&#x1f433;博客主頁&#xff1a;花神廟碼農 &#xff0c;地址&#xff1a;https://blog.csdn.net/qxhgd&#x1f310;系列專欄&#xff1a;善假于物&#…

粵港聯動,北斗高質量國際化發展的重要機遇

今年是香港回歸27周年&#xff0c;也是《粵港澳大灣區發展規劃綱要》公布5周年&#xff0c;5年來各項政策、平臺不斷為粵港聯動增添新動能。“十四五”時期的粵港澳大灣區&#xff0c;被國家賦予了更重大的使命&#xff0c;國家“十四五”《規劃綱要》提出&#xff0c;以京津冀…

時序約束(二): input delay約束和output delay約束

一、input delay約束 在千兆以太網數據收發項目中&#xff0c;RGMII的數據輸入方式為DDR&#xff0c;源同步輸入方式&#xff0c;可以用之前提到的分析模型進行約束。 在時序約束原理中我們提到&#xff0c;input delay約束的就是發射沿lunch到數據有效的延時&#xff0c;根據…

Vue 3中 <script setup> 與生命周期鉤子函數的詳細解析

Vue 3中 <script setup> 與生命周期鉤子函數的詳細解析 Vue 3 引入了 <script setup> 語法糖&#xff0c;這是一種簡化和集成組件邏輯的新方式。盡管 <script setup> 簡化了組件的編寫&#xff0c;但仍然可以利用 Vue 提供的生命周期鉤子函數來管理組件的生…