MOOC資料結構課程 題集15 列出連通集

2021-09-01 00:09:00 字數 1976 閱讀 6443

06-圖1 列出連通集 (25 分)

給定乙個有n個頂點和e條邊的無向圖,請用dfs和bfs分別列出其所有的連通集。假設頂點從0到n−1編號。進行搜尋時,假設我們總是從編號最小的頂點出發,按編號遞增的順序訪問鄰接點。

輸入第1行給出2個整數n(0按照""的格式,每行輸出乙個連通集。先輸出dfs的結果,再輸出bfs的結果。

8 6

0 70 1

2 04 1

2 43 5

最後輸出要求一直沒看懂,後來才知道原來是要給臨接表的每乙個表頭節點後面的臨接點排序。

感覺這題用臨接矩陣會舒服一些,臨接表純粹是為了學習使用的 

#include #include #define vertex int

#define edge enode

#define max_vertex 10

typedef struct _enode //邊

enode;

typedef struct _adjvnode//臨接頂點

adjvnode;

typedef struct _vnode //頂點表頭

vnode[max_vertex];

typedef struct _graph //圖

graph;

void creat_graph(graph *g, int vnum, int enum);

void insert_edge(graph *, edge);

void bfs_components(graph *);

void bfs(graph *, vertex first_v, int visited);

void dfs_components(graph *);

void dfs(graph *, vertex first_v, int visited);

void print_squ();

void sort_adjv(graph *);

void sort_bubble(adjvnode *);

using namespace std;

dequev_squ;//輸出的序列

bool is_first_print = 1;

int main()

sort_adjv(graph);

dfs_components(graph);

bfs_components(graph);

return 0;

}void creat_graph(graph *graph, int vnum, int enum)

void insert_edge(graph *graph, edge edge)

//廣度優先遍歷(輸出)所有連通分量

void bfs_components(graph *graph)

}void bfs(graph *graph, vertex first_v, int visited) //入隊前訪問,出隊後檢查臨接點併入隊

last = last->next;

} }}//深度優先遍歷(輸出)所有連通分量

void dfs_components(graph *graph)

}void dfs(graph *graph, vertex first_v, int visited)

else return;

last = graph->g[v].first_node;

while (last != null) }

void print_squ()

cout << "}" ;

}void sort_adjv(graph *graph)

}void sort_bubble(adjvnode *head)

p = p->next;

q = q->next;

} last = p;

}}

MOOC資料結構課程 題集12 堆中的路徑

05 樹7 堆中的路徑 25 分 將一系列給定數字插入乙個初始為空的小頂堆h。隨後對任意給定的下標i,列印從h i 到根結點的路徑。每組測試第1行包含2個正整數n和m 1000 分別是插入元素的個數 以及需要列印的路徑條數。下一行給出區間 10000,10000 內的n個要被插入乙個初始為空的小頂堆...

mooc資料結構筆記(題來自mooc)

6 2 順序表操作集 20 分 本題要求實現順序表的操作集。list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,positio...

資料結構題集

陣列 移動零 陣列 移除元素 陣列 刪除元素 陣列 兩數之和 ii 輸入有序陣列 陣列 驗證回文串 陣列 反轉字串中的母音字母 陣列 長度最小的子陣列 陣列 兩個陣列的交集 查詢錶類演算法 兩個陣列的交集 ii 查詢錶類演算法 有效的字母異位詞 查詢錶類演算法 同構字串 查詢表的演算法 根據字元出現...