1. 程式人生 > >C語言-資料結構-圖的遍歷

C語言-資料結構-圖的遍歷

#include <stdio.h>
#include <stdlib.h>
#include "ljb.h"
int visited[M];
///圖的遍歷
void dfs(linkedgraph g,int i)
{
    edgenode *p;
    printf("visit vertex:%c\n",g.adjivex[i].vertex);
    visited[i]=1;
    p=g.adjlist[i]fristedge;
    while(p)
    {
        if(!visited[p->adjvex])
        dfs(g,p->adjvex);
        p=p->next;
    }
}
void dftraverse(linkedgraph g)
{
    int i;
    for(i=0;i<g.n;i++)
       visited[i]=0;
    for(i=0;i<g;i++)
        if(!visited)
}
int main()
{
    printf("Hello world!\n");
    return 0;
}

相關推薦

C語言-資料結構-

#include <stdio.h> #include <stdlib.h> #include "ljb.h" int visited[M]; ///圖的遍歷 void dfs(linkedgraph g,int i) {     edgenode

C語言資料結構演算法實現

   假設給定圖G的初態是所有頂點均未曾訪問過。在G中任選一頂點v為初始出發點(源點),則深度優先遍歷可定義如下:首先訪問出發點v,並將其標記為已訪問過;然後依次從v出發搜尋v的每個鄰接點w。若w未曾訪問過,則以w為新的出發點繼續進行深度優先遍歷,直至圖中所有和源點v有路徑相通(從源點可達)的頂點均已被訪問為

C語言資料結構的簡單實驗——二叉樹的

實驗題目: 建立一株用二叉連結串列儲存的二叉樹,並對其進行遍歷。 實驗思路: 解題關鍵是要建立二叉樹,因此對語二叉樹的每一個節點,我以連結串列為儲存方式並用遞迴的思想對其進行定義。 ** 程式碼實現: ** #include<stdio.h> #in

C語言(遞迴資料夾)實現檔案批量複製

大專案時時常需要抽出屬於自己編寫的那部分程式碼,從SVN下載後,往往需要一個個的進入資料夾下拿取相應的檔案。這樣很浪費時間,雖然使用bat編寫確實更快,但是我覺得使用C語言可能在檔案過多時會快一點,也是為了 練習練習。如果那裡存在問題,或是不足,歡迎指出。程式碼如下: #includ

【unity3d-C#學習筆記】C#中常用的資料結構方法

常用的集合類:ArrayList,Queue,Stack,SortedList,Hashtable 陣列: Array: 1.資料儲存在連續的記憶體上。 2.陣列的語速都是同類型的。 3.陣列

C語言資料結構的鄰接矩陣的應用例項

圖的儲存結構有 3 種形式:鄰接矩陣、鄰接表 和 鄰接多重表 對於一個有 n 個頂點的圖,其頂點資訊可以用一個一維陣列表示,而頂點間是否有相鄰的關係,可以用鄰接矩陣(Adjacency Matrix)來表示。若 G 是一個有 n 個頂點的圖,則 G 的鄰接矩陣 A 是具有如

資料結構演算法

圖的鄰接矩陣結構: public class GraphArray<T> { private int[][] edges; // 鄰接矩陣 private T[] vert

c語言實現用指標二維陣列

1 #include <stdio.h> 2 void bian(int row,int col,int *a) 3 { 4 int i,j; 5 for(i=0;i<row;i++) 6 for(j=0;j<col;j++) 7

Lesson 026 —— python 資料結構

Lesson 026 —— python 資料結構與遍歷 列表 Python中列表是可變的,這是它區別於字串和元組的最重要的特點,一句話概括即:列表可以修改,而字串和元組不能。 以下是 Python 中列表的方法: 方法 描述 lis

C語言資料結構——雙迴圈連結串列的插入操作順序

雙向連結串列與單鏈表的插入操作的區別 雙向連結串列因為存在前驅指標和後繼指標所以需要修改的指標多於單鏈表,但指標改動的順序同樣重要 單鏈表的插入 eg:在節點p的後面插入指標s s->next=p->next;//首先要使要插入的指標指向p->next p->next=s

C語言資料結構-二叉樹、哈夫曼、佇列小練習

原始碼地址 GitHub:https://github.com/GYT0313/C-DataStructure 1. 二叉樹 要求: 掌握二叉樹的二叉連結串列的建立方法; 掌握二叉樹的3種遍歷遞迴演算法; 掌握二叉樹的3種遍歷的非遞迴演算法。 程式

C語言由後序和中序重構二叉樹練習

1 由中根序列和後根序列重建二叉樹(10分) 題目內容: 我們知道如何按照三種深度優先次序來周遊一棵二叉樹,來得到中根序列、前根序列和後根序列。反過來,如果給定二叉樹的中根序列和後根序列,或者給定中根序列和前根序列,可以重建一二叉樹。本題輸入一棵二叉樹的中根序列和後根序列,要求在記憶體中

C語言根據前序和後續還原二叉樹,並輸出二叉樹的高度

7-23 還原二叉樹 (25 point(s)) 給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。 輸入格式: 輸入首先給出正整數N(≤50),為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為N的不包含重複英文字母(區別大小寫)的字串

C語言資料結構與演算法之深度、廣度優先搜尋

一、深度優先搜尋(Depth-First-Search 簡稱:DFS) 1.1 遍歷過程:   (1)從圖中某個頂點v出發,訪問v。   (2)找出剛才第一個被頂點訪問的鄰接點。訪問該頂點。以這個頂點為新的頂點,重複此步驟,直到訪問過的頂點沒有未被訪問過的頂點為止。   (3)返回到

c語言list巢狀

list<string>::iterator itor;  //定義迭代器   list<string> myList1;   list<string> myList2; list<list<string

Python資料結構--樹演算法

1 ''' 2 遍歷是訪問樹的所有節點的過程,也可以列印它們的值。 因為所有節點都通過邊(連結)連線,所以始終從根(頭)節點開始。 3 也就是說,我們不能隨機訪問樹中的一個節點。 這裡介紹三種方式來遍歷一棵樹 -順序遍歷 -前序遍歷 -後序遍歷 4 ''' 5 6 7 class No

C語言資料結構——一步步教會你尾插法和頭插法

連結串列也是線性表的一種,與順序表不同的是,它在記憶體中不是連續存放的。在C語言中,連結串列是通過指標相關實現的。而單鏈表是連結串列的其中一種,關於單鏈表就是其節點中有資料域和只有一個指向下個節點的指標域。  建立單鏈表的方法有兩種,分別是頭插法和尾插法。 所謂頭插法,就是按節點的

c語言資料結構之順序表

c語言資料結構之順序表:     順序表的結構跟陣列比起來還是很像的,相比於連結串列,資料表的優勢主要體現在他的查詢速度上,而連結串列的優勢相反,查詢速度慢,但對於插入一個數據來說還是比較快的 下面我們就來建立一個順序表 1:定義資料型別,我定義的是一個學生的結構體型別,首

C語言連結串列:,頭插,尾插,中間插入;頭節點刪除,尾節點刪除,中間刪除的操作

/****************************************************************************************************************************************

C語言-資料結構-鏈佇列

** 鏈式佇列 ** 使用兩種不同的方式作為初始化, 特點: 一種是傳遞 Init(&Q); 一種是直接P Q = create(); 我覺得還是這種的方式比較靈活,對比見程式 注:我的習慣是直接寫成標頭檔案,方便呼叫 這個程式使用的 是InitQue