C 深度優先遍歷結構演算法

2021-09-05 22:37:58 字數 1838 閱讀 8444

n久都沒做過關於c#的winform程式了,一直都是在研究asp.net的程式。

今天有個朋友問到深度遍歷圖這樣的問題,開始都不知道如何下手,就問了問baidu 和 google,看到有人用c++寫的這樣的例子,順便就學習了一下,發現自己都忘得差不多了(包括:資料結構),只能聯想到剛開始學vs2003的時候,學習的第乙個hello worl的例子,要建立乙個控制台應用程式。

接著就開啟vs2005,新建——>專案——>控制台應用程式

**如下:

1using

system;

2using

system.collections.generic;

3using

system.text;

4using

system.collections;56

namespace734

}3536class

vertex

3743

4445

public

char

_label;

46public

bool

wasvisited;47}

4849

class

graph

5067

//初始新增點數

68public

void

addvertex(

char

label)

6972

73public

void

addedge(

intstart, 

intend)

7478

79public

void

addedge(

char

startv, 

char

endv)

8087

if(start ==-

1) console.writeline(

"頂點不存在

", startv);

88if

(end ==-

1) console.writeline(

"頂點不存在

", endv);

89//

權值預設為1 

90adjmat[start, end] =1

;91adjmat[end, start] =1

;92}93

94//

顯示字元

95public

void

displayvertex(

intv)

96101

else

102105

flag++;

106}

107//

深度優先遍歷

108public

void

dfs()

109128

}129

//初始化所有的頂點狀態為未被訪問

130for

(intj =

0; j 

<

countvertexs; j++)

131vertexlist[j].wasvisited 

=false

;132

}133

134public

intgetadjunvisitedvertex(

intv)

135141

}142

}143

結果如圖:

如果大家有其它好的演算法,希望能拿出來分享~

C 深度優先遍歷結構演算法

今天有個朋友問到深度遍歷圖這樣的問題,開始都不知道如何下手,就問了問baidu 和 google,看到有人用c 寫的這樣的例子,順便就學習了一下,發現自己都忘得差不多了 包括 資料結構 只能聯想到剛開始學vs2003的時候,學習的第乙個hello worl的例子,要建立乙個控制台應用程式。文 zha...

DOM深度優先遍歷演算法

通過深度優先遍歷演算法,可以依次獲取每個後代節點的物件。順序 有子元素先獲取子元素,再獲取兄弟元素 主要有2步驟 1.建立節點迭代器物件 parent是要遍歷的節點 var iterator document.createnodeiterator parent,nodefilter.show ele...

深度優先遍歷 廣度優先遍歷

用棧進行儲存元素。訪問頂點 頂點入棧,以便記住它 標記頂點,以便不會再訪問它 2 訪問規則 a.如果可能,訪問乙個鄰接的未訪問頂點,標記它,併入棧。b.當不能執行a時 沒有鄰接的未訪問頂點 如果棧不為空,就從棧中彈出乙個頂點。c.如果不能執行規則a和b,就完成了整個搜尋過程。3 實現 基於以上規則,...