国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java 數(shù)據(jù)結(jié)構(gòu)- 圖

這篇具有很好參考價(jià)值的文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)- 圖。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

表示多對(duì)多的關(guān)系時(shí),這里我們就用到了圖

圖的常用概念
  1. 頂點(diǎn)
  2. 路徑
  3. 無(wú)向圖
  4. 有向圖
  5. 帶權(quán)圖(邊帶權(quán)值的圖也叫做網(wǎng))

圖的表示方式有兩種:二維數(shù)組表示(鄰接矩陣);鏈表表示(鄰接表)

鄰接矩陣
鄰接矩陣是表示圖形中頂點(diǎn)之間相鄰關(guān)系的矩陣,對(duì)于n個(gè)頂點(diǎn)的圖而言,矩陣的是用row和col來(lái)表示1……n

鄰接表
1.鄰接矩陣需要為每個(gè)頂點(diǎn)分配n個(gè)邊的空間,其實(shí)有很多邊都是不存在的,會(huì)造成一定的空間損失
2.鄰接表的實(shí)現(xiàn)只關(guān)心存在的邊,不關(guān)心不存在的邊,因此沒(méi)有空間浪費(fèi),鄰接表由數(shù)據(jù)+鏈表組成
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-619904.html

public class Graph {
	private ArrayList<String> vertexList;//存儲(chǔ)頂點(diǎn)集合
	private int[][] edges;//存儲(chǔ)圖對(duì)應(yīng)的鄰接矩陣
	private int numOfEdges;//表示邊的數(shù)目
	public static void main(String[] args) {
		//測(cè)試
		int n=5;//節(jié)點(diǎn)個(gè)數(shù)
		String VertexValue[]= {"A","B","C","D","E"};
		//創(chuàng)建圖對(duì)象
		Graph graph=new Graph(n);
		//循環(huán)添加頂點(diǎn)
		for(String value:VertexValue) {
			graph.insertVertex(value);
		}
		//添加邊
		//A-B,A-C,B-C,B-D,B-E
		graph.insertEdge(0, 1, 1);
		graph.insertEdge(0, 2, 1);
		graph.insertEdge(1, 2, 1);
		graph.insertEdge(1, 3, 1);
		graph.insertEdge(1, 4, 1);
		//顯示
		graph.showGraph();
	}
	//構(gòu)造器
	public Graph(int n) {
		//初始化矩陣和vertexList
		edges=new int[n][n];
		vertexList=new ArrayList<String>(n);
		numOfEdges=0;
	}
	//圖中常用方法
	//返回節(jié)點(diǎn)個(gè)數(shù)
	public int getNumOfVertex() {
		return vertexList.size();
	}
	//得到邊的數(shù)目
	public int getNumOfEdges() {
		return numOfEdges;
	}
	//返回節(jié)點(diǎn)i對(duì)應(yīng)的數(shù)據(jù)
	public String getValueByIndex(int i) {
		return vertexList.get(i);
	}
	//返回v1和v2對(duì)應(yīng)的權(quán)值
	public int getWeight(int v1,int v2) {
		return edges[v1][v2];
	}
	//插入節(jié)點(diǎn)
	public void insertVertex(String vertex) {
		vertexList.add(vertex);
	}
	//添加邊
	public void insertEdge(int v1,int v2,int weight) {
		edges[v1][v2]=weight;
		edges[v2][v1]=weight;
		numOfEdges++;
	}
	//顯示圖對(duì)應(yīng)的矩陣
	public void showGraph() {
		for(int[]link:edges) {
			System.err.println(Arrays.toString(link));
		}
	}
	
}

到了這里,關(guān)于java 數(shù)據(jù)結(jié)構(gòu)- 圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)和算法筆記1:滑動(dòng)窗口

    數(shù)據(jù)結(jié)構(gòu)和算法筆記1:滑動(dòng)窗口

    在一些數(shù)組或者字符串我們需要遍歷子序列,可能要用到兩個(gè)指針(我們稱為起始指針和終止指 針)進(jìn)行雙層遍歷,內(nèi)層終止指針滿足條件時(shí)跳出內(nèi)層循環(huán),然后起始指針前進(jìn),回溯終止指針到起始指針,以此繼續(xù)進(jìn)行遍歷,然而這樣效率比較低,我們可能進(jìn)行了很多不必要

    2024年02月07日
    瀏覽(20)
  • 【學(xué)習(xí)筆記】數(shù)據(jù)結(jié)構(gòu)算法文檔(類C語(yǔ)言)

    1.1.1 線性表的順序存儲(chǔ)表示 1.1.2 順序表中基本操作的實(shí)現(xiàn) 1.1.2.1 初始化 1.1.2.2 取值 1.1.2.3 查找 1.1.2.4 插入 1.1.2.5 刪除 1.1.2.6 計(jì)數(shù) 1.2.1 單鏈表的定義和表示 ★ 關(guān)于結(jié)點(diǎn) 1.2.2 單鏈表基本操作的實(shí)現(xiàn) 1.2.2.1 初始化 1.2.2.2 取值 1.2.2.3 查找 1.2.2.4 插入 1.2.2.5 刪除 1.2.2.6 前插法創(chuàng)建單

    2024年02月07日
    瀏覽(53)
  • 【王道考研】王道數(shù)據(jù)結(jié)構(gòu)與算法詳細(xì)筆記(全)

    【王道考研】王道數(shù)據(jù)結(jié)構(gòu)與算法詳細(xì)筆記(全)

    目錄 第一章 數(shù)據(jù)結(jié)構(gòu)緒論? 1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念 1.2 數(shù)據(jù)結(jié)構(gòu)的三要素 1.2.1. 數(shù)據(jù)的邏輯結(jié)構(gòu) 1.2.2. 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu)) 1.2.3. 數(shù)據(jù)的運(yùn)算 1.2.4. 數(shù)據(jù)類型和抽線數(shù)據(jù)類型 1.3 算法的基本概念 1.4?算法的時(shí)間復(fù)雜度 1.5?算法的空間復(fù)雜度 第二章 線性表 2.1 線性表的定

    2024年02月08日
    瀏覽(29)
  • 讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序]

    讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序]

    核心:通過(guò)構(gòu)建有序序列,對(duì)于未排序序列,在已排序序列中從后向前掃描(對(duì)于單向鏈表則只能從前往后遍歷),找到相應(yīng)位置并插入。實(shí)現(xiàn)上通常使用in-place排序(需用到O(1)的額外空間) 從第一個(gè)元素開(kāi)始,該元素可認(rèn)為已排序 取下一個(gè)元素,對(duì)已排序數(shù)組從后往前掃描 若從

    2024年02月04日
    瀏覽(19)
  • 讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要8[桶排序]

    讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要8[桶排序]

    桶排序和歸并排序有那么點(diǎn)點(diǎn)類似,也使用了歸并的思想。大致步驟如下: 設(shè)置一個(gè)定量的數(shù)組當(dāng)作空桶。 Divide - 從待排序數(shù)組中取出元素,將元素按照一定的規(guī)則塞進(jìn)對(duì)應(yīng)的桶子去。 對(duì)每個(gè)非空桶進(jìn)行排序,通??稍谌厝胪皶r(shí)進(jìn)行插入排序。 Conquer - 從非空桶把元素

    2024年01月18日
    瀏覽(23)
  • 【軟考程序員學(xué)習(xí)筆記】——數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)

    【軟考程序員學(xué)習(xí)筆記】——數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)

    目錄 ???一、數(shù)據(jù)結(jié)構(gòu)概念和分類 ??二、數(shù)組特點(diǎn)存儲(chǔ)方式 ??三、矩陣 特殊矩陣 非特殊矩陣 ??四、棧和隊(duì)列 ???五、二叉樹(shù)的性質(zhì) ??六、二叉樹(shù)的遍歷 (1)前序遍歷(先根遍歷,先序遍歷) (2)中遍歷(中根遍歷) (3)后序遍歷(后根遍歷,后序遍歷) ??七、二叉排序樹(shù) ??八、

    2024年02月12日
    瀏覽(24)
  • java數(shù)據(jù)結(jié)構(gòu)與算法:棧

    代碼: 測(cè)試: 鏈表頭為堆棧頂 代碼: 測(cè)試:

    2024年01月21日
    瀏覽(28)
  • java入門(mén),程序=數(shù)據(jù)結(jié)構(gòu)+算法

    java入門(mén),程序=數(shù)據(jù)結(jié)構(gòu)+算法

    一、前言 在學(xué)習(xí)java的時(shí)候,我印象最深的一句話是:程序=數(shù)據(jù)結(jié)構(gòu)+算法,對(duì)于寫(xiě)java程序來(lái)說(shuō),這就是java的入門(mén)。 二、java基本數(shù)據(jù)結(jié)構(gòu)與算法 1、數(shù)據(jù)類型 java中的數(shù)據(jù)類型8種基本數(shù)據(jù)類型: 整型 byte 、short 、int 、long 浮點(diǎn)型 float 、 double 字符型 char 布爾型 boolean 還有包

    2024年02月05日
    瀏覽(23)
  • Java 數(shù)據(jù)結(jié)構(gòu)與算法-樹(shù)

    樹(shù)的基礎(chǔ)知識(shí) 樹(shù)是算法面試經(jīng)常遇到的數(shù)據(jù)結(jié)構(gòu)之一,在實(shí)際工作中也有可能經(jīng)常用到…… 應(yīng)聘者在準(zhǔn)備算法面試時(shí)最需要重視的是二叉樹(shù)…… 二叉樹(shù)是一種典型的具有遞歸性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。二叉樹(shù)的根節(jié)點(diǎn)可能有子節(jié)點(diǎn),子節(jié)點(diǎn)又是對(duì)應(yīng)子樹(shù)的根節(jié)點(diǎn),它可能也有自己的

    2024年02月08日
    瀏覽(20)
  • 【零基礎(chǔ)】學(xué)python數(shù)據(jù)結(jié)構(gòu)與算法筆記14-動(dòng)態(tài)規(guī)劃

    【零基礎(chǔ)】學(xué)python數(shù)據(jù)結(jié)構(gòu)與算法筆記14-動(dòng)態(tài)規(guī)劃

    學(xué)習(xí)python數(shù)據(jù)結(jié)構(gòu)與算法,學(xué)習(xí)常用的算法, b站學(xué)習(xí)鏈接 動(dòng)態(tài)規(guī)劃在基因測(cè)序、基因比對(duì)、hmm 有應(yīng)用場(chǎng)景。 從斐波那契數(shù)列看動(dòng)態(tài)規(guī)劃 練習(xí): 使用遞歸和非遞歸的方法來(lái)求解斐波那契數(shù)列。 這種非遞歸求斐波那契數(shù),可以看成是一個(gè)動(dòng)態(tài)規(guī)劃思想,每次都會(huì)把重復(fù)子問(wèn)

    2023年04月09日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包