數據結構課上筆記15

圖的存儲

?

多重鏈表:完全模擬圖的樣子,每個節點內的指針都指向該指向的節點。

節點結構內指針數為度

缺點:浪費空間、不容易操作

?

數組表示法(鄰接矩陣表示法)

可用兩個數組存儲。其中一個 一維數組存儲數據元素(頂點)的信息,另一個二維數組 (鄰接矩陣)存儲數據元素之間的關系(邊或弧)的信息

有向圖:

有向網:

缺點:用于稀疏圖時空間浪費嚴重

優點:操作較容易

?

鄰接表

指針數組存放每個結點,每個結點后接所有能到達的節點。

?

圖的遍歷

?

從圖的任意指定頂點出發,依照某種規則去訪問圖中所有頂 點,且每個頂點僅被訪問一次,這一過程叫做圖的遍歷。

圖的遍歷按照深度優先和廣度優先規則去實施,通常有深度 優先遍歷法(Depth_First Search——DFS )和 ?廣度優先遍歷法 ( Breadth_Frist Search——BFS)兩種。

簡單棋盤搜索https://blog.csdn.net/hebtu666/article/details/81483407

別的實現以后再貼

如何判別V的鄰接點是否被訪問?

為每個頂點設立一個“訪問標志”。

?

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

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

相關文章

c++基礎學習(05)--(指針,引用)

文章目錄目錄1.指針2.引用目錄 1.指針 #include <iostream>using namespace std;int main () {int var1;char var2[10];cout << "var1 變量的地址&#xff1a; ";cout << &var1 << endl;cout << "var2 變量的地址&#xff…

由旅行商問題認識何為狀態壓縮

動態規劃 動態規劃(dynamic programming)是運籌學的一個分支&#xff0c;是求解決策過程(decision process)最優化的數學方法。20世紀50年代初美國數學家R.E.Bellman等人在研究多階段決策過程(multistep decision process)的優化問題時&#xff0c;提出了著名的最優化原理(pri…

c++基礎學習(06)--(時間,輸入輸出,數據結構)

文章目錄目錄1.時間2.輸入輸出數據結構目錄 1.時間 當前日期和時間 下面的實例獲取當前系統的日期和時間&#xff0c;包括本地時間和協調世界時&#xff08;UTC&#xff09;。 #include <iostream> #include <ctime>using namespace std;int main( ) {// 基于當前…

Abstract Self-Balancing Binary Search Tree

二叉搜索樹 二叉查找樹&#xff08;Binary Search Tree&#xff09;&#xff0c;&#xff08;又&#xff1a;二叉搜索樹&#xff0c;二叉排序樹&#xff09;它或者是一棵空樹&#xff0c;或者是具有下列性質的二叉樹&#xff1a; 若它的左子樹不空&#xff0c;則左子樹上所有結…

AVL Tree

前言 希望讀者 了解二叉搜索樹 了解左旋右旋基本操作 https://blog.csdn.net/hebtu666/article/details/84992363 直觀感受直接到文章底部&#xff0c;有正確的調整策略動畫&#xff0c;自行操作。 二叉搜索樹 二叉查找樹&#xff08;Binary Search Tree&#xff09;&a…

c++基礎學習(07)--(類)

文章目錄目錄類與對象1.類成員函數2.類訪問修飾符3.構造函數與析構函數4.拷貝構造函數5. 友元函數6.內聯函數7.this指針8.指向類的指針9.類的靜態成員目錄 類與對象 #include <iostream>using namespace std;class Box {public:double length; // 長度double breadth;…

【大總結1】數據結構與傳統算法總結

由于時間和水平有限&#xff0c;肯定有錯誤或者寫得不好的地方 歡迎在文章下評論指出。 涉及語言&#xff1a; py3&#xff1a;注重算法本身的知識 c/c&#xff1a;實現基礎數據結構和算法 java&#xff1a;實現較復雜數據結構 一、概述 c語言知識體系 算法體系參考 課上筆…

c++基礎學習(08)--(繼承、重載、多態、虛函數)

文章目錄目錄1.繼承2.重載3.多態 && 虛函數目錄 1.繼承 #include <iostream>using namespace std;// 基類 class Shape {public:void setWidth(int w){width w;}void setHeight(int h){height h;}protected:int width;int height; };// 派生類 class Rectang…

圖的應用

1. 圖的應用總覽 在數據結構中圖的應用很廣泛&#xff0c;本文主要從以下四個方面介紹&#xff1a; ①最小生成樹&#xff1a;給定一個無向網絡&#xff0c;在該網的所有生成樹中&#xff0c;使得各邊權數之和最小的那棵生成樹稱為該網的最小生成樹&#xff0c;也叫最小代價…

c++基礎學習(09)--(數據抽象、數據封裝、接口)

文章目錄目錄1.數據抽象2.數據封裝3.抽象接口類目錄 1.數據抽象 數據抽象&#xff1a;就是把它當做黑箱子使用&#xff0c;內部實現與外部接口分開 C類實現數據抽象&#xff0c;如sort()函數&#xff0c;ostream的cout對象 #include <iostream> using namespace std…

吃豆人游戲開發

這個文章怎么突然這么多人看啊。請大家多關注我其他文章啊 html&#xff1a; <html> <head> <meta charset"utf8"> <title>html5 pacman吃豆人游戲代碼</title><style>body{background-color: #292929}*{padding:0;margin:0;}.w…

c++基礎學習(10)--(文件、流、異常處理、動態內存、命名空間)

文章目錄目錄1.文件和流2.異常處理3.動態內存4.命名空間目錄 1.文件和流 注意 文件打開方式中的in和out都是相對于內存&#xff08;計算機&#xff09;而言的&#xff0c;計算機讀取文件&#xff0c;是將數據從磁盤中的文件讀入到內存中&#xff0c;所以用的是in #include &…

數據結構和算法(02)---字符串(c++)

文章目錄目錄一.c風格的字符串與操作函數1.c風格字符串2.c風格字符串處理函數二.c中的字符串與操作函數1.c中的string類2.string類的基本操作3.string類的操作匯總目錄 數據結構&#xff1a; 邏輯結構&#xff1a;數組&#xff0c;棧&#xff0c;隊列&#xff0c;字符串&#x…

如何學習數據結構和算法——大佬文章匯總

第一篇 第二篇、 作者&#xff1a;左程云 我分別說一下國內和國外的行情。 國內的話&#xff0c;一般來講&#xff0c;工資高的公司在面試時算法和數據結構題目的比重較大&#xff0c;工資一般的公司比重較小。當然同樣公司的不同崗位&#xff0c;要求也會不同&#xff0c;…

c++基礎學習(13)--(STL、標準庫)

文章目錄目錄1. STL教程2.標準庫3.有用的資源目錄 1. STL教程 #include <iostream> #include <vector> using namespace std;int main() {// 創建一個向量存儲 intvector<int> vec; int i;// 顯示 vec 的原始大小cout << "vector size " &…

哈夫曼實現文件壓縮解壓縮(c語言)

寫一個對文件進行壓縮和解壓縮的程序&#xff0c;功能如下&#xff1a; ① 可以對純英文文檔實現壓縮和解壓&#xff1b; ② 較好的界面程序運行的說明。 介紹哈夫曼&#xff1a; 效率最高的判別樹即為哈夫曼樹 在計算機數據處理中&#xff0c;霍夫曼編碼使用變長編碼表對源…

c++基礎學習(11)--(模板、預處理器、信號處理)

文章目錄目錄1.模板2.預處理器3.信號處理目錄 1.模板 模板是泛型編程的基礎&#xff0c;泛型編程&#xff1a;以一種獨立于任何特定類型的方式 #include <iostream> #include <string>using namespace std;template <typename T> inline T const& Max…

java 面向對象必懂概述

&#xff08;這是大體框架&#xff0c;以后部分知識細寫&#xff09; 1 抽象過程 所有編程語言都提供抽象機制。可以認為&#xff0c;人們能解決的問題的復雜性直接取決于抽象的類型和質量。 類型&#xff1a;指的是所抽象的是什么。 匯編語言是對底層機器語言的輕微抽象…

c++基礎學習(12)--(多線程、Web編程)

文章目錄目錄1.多線程2.web編程目錄 1.多線程 #include <iostream> // 必須的頭文件 #include <pthread.h>using namespace std;#define NUM_THREADS 5// 線程的運行函數 void* say_hello(void* args) {cout << "Hello Runoob&#xff01;" <&…

《Head First設計模式》第九章(1)迭代器模式

迭代器模式 因為這一章涉及到兩個模式&#xff0c;內容有點多&#xff0c;還有一個組合模式留到下一篇寫吧。 有許多種方法可以把對象堆起來成為一個集合&#xff08;collection&#xff09;。你可以把它們放進數組、堆棧、列表或者是散列表&#xff08;Hashtable&#xff09…