資料結構與演算法基礎 模組五

2022-08-31 03:24:11 字數 769 閱讀 6902

嗯mm  現在到演算法階段了,比較多的**,建議有時間自己在電腦上敲一下,加深理解。

那麼,現在以問題來帶入:

1、什麼是拓樸排序?

注:aov網的拓撲序列不是唯一的,滿足上述定義的任一線性序列都稱作它的拓撲序列。

2、拓樸排序的實現步驟

①在有向圖中選乙個沒有前驅的頂點並且輸出

②從圖中刪除該頂點和所有以它為尾的弧(白話就是:刪除所有和它有關的邊)

③重複上述兩步,直至所有頂點輸出,或者當前圖中不存在無前驅的頂點為止,後者代表我們的有向圖是有環的,因此,也可以通過拓撲排序來判斷乙個圖是否有環。

for (i = 0; i != this->vexnum; i++)

}for (i = 0; i != this->vexnum; i++)

}//count用於計算輸出的頂點個數

int count=0;

while (!s.empty())

temp = temp->next;

}++count;

}if (count == this->vexnum)  

return false;

}鄰接表儲存的**實現:

#include

#include

#include

using namespace std;

struct arcnode ;

struct vnode ;

class graph_dg ;

資料結構與演算法基礎 模組三

在昨天的分享中,主要是說明了相關樹的內容,那麼緊接著上一次的內容,來說一下查詢二叉樹的相關基本操作,在查詢二叉樹中,重要分為三種操作 1 查詢 首先需要判斷key是否為根節點 與當前的值進行比較,若小,進入左子樹,反之,進入右子樹。重複以上操作,直到找到 2 插入結點 在查詢二叉樹中插入乙個結點需要...

資料結構與演算法(五)

雙端鍊錶和雙向鍊錶 一.雙端鍊錶 1.什麼是雙端鍊錶 鍊錶中儲存著對最後乙個鏈結點的引用的鍊錶 2.從頭部進行插入 要對鍊錶進行判斷,如果為空則設定尾結點為新新增的結點。3.從尾部進行插入 如果鍊錶為空,則直接設定頭結點為新新增的結點,否則設定尾結點的後乙個結點為新新增的結點。4.從頭部進行刪除 判...

資料結構與演算法(五)

三根針xyz,x上64個圓盤 設計思路 if n 1時,x z else 執行n 1的操作,直到n 1 1 由零個或多個字元組成的有限序列 是用一組位址連續的儲存單元來儲存串中的字串行,按照預定義的大小,為每個定義的字串變數分配乙個固定長度的儲存區,一般用定長陣列來定義 一般用順序儲存 樸素的模式匹...