1. 程式人生 > >前向星(存圖)

前向星(存圖)

#include <iostream>
#include <cstdio>

using namespace std;

const int maxn = 100;
const int maxm = 100000;

typedef struct edgenode {
    int to; //邊的終點
    int next; //當前下一條邊的編號
    int w;  //邊的權值
}edgenode;

int head[maxn]; //head[i]存放已i為起點的第一條邊
edgenode edge[maxm];
int edgenum = 1;
int n = 0, m = 0;

int init() {
    edgenum = 1;
    memset(head, 0, sizeof(head));//chu shi hua 0;
    return 0;
}

int outputmap(){
    for (int i = 1; i <= n; i++) {
        for (int k = head[i]; k != 0; k = edge[k].next) {
            printf("(%d --- > %d) == %d\n", i, edge[k].to, edge[k].w);
        }
    }
    return 0;
}

int main() {
    init();
    int a = 0, b = 0, c = 0;
    while (scanf("%d%d", &n, &m) == 2) {
        for (int i = 0; i < m; i++) {
            scanf("%d%d%d", &a, &b, &c);
            edge[edgenum].to = b;
            edge[edgenum].w = c;
            edge[edgenum].next = head[a];
            head[a] = edgenum;
            edgenum++;
            edge[edgenum].to = a;
            edge[edgenum].w = c;
            edge[edgenum].next = head[b];
            head[b] = edgenum;
            edgenum++;
        }
        outputmap();
        init();
    }
    return 0;
}

相關推薦

#include <iostream> #include <cstdio> using namespace std; const int maxn = 100; const int maxm = 100000; typedef struct edge

的儲存-鏈式池子法可用於樹形dp建樹

歡迎點選檢視 不過您仍可閱讀本文在網易部落格的副本: ======================================================  “鏈式前向星”是我創造的(至少Baidu上沒有搜到)名詞,或許這種資料結構有其他更加正規易懂的名字,但我還是沒有搜到。(有一個資

鏈式

img detail pre nlog 避免 target 我們 ext edge 轉自大佬博客https://blog.csdn.net/ACdreamers/article/details/16902023 我們首先來看一下什麽是前向星. 前向星是一種特殊的邊

鏈式系列

看名字很難,實際上賊簡單... 本蒟蒻瑟瑟發抖,請大佬們不要噴... 寫的有點長,如果覺得讀不下去... 肯定讀的下去,我寫得多通俗易懂啊! 不要管右面的表格...看左面的圖...好,讓我們開始: PS:n代表點的個數,m代表邊的個數   Part 1:鄰接矩陣 先列出來矩陣,然

演算法Forward Algorithm

首先需要說明的是,本節不是這個系列的翻譯,而是作為前向演算法這一章的補充,希望能從實踐的角度來說明前向演算法。除了用程式來解讀hmm的前向演算法外,還希望將原文所舉例子的問題拿出來和大家探討。  文中所舉的程式來自於UMDHMM這個C語言版本的HMM工具包,具體見《幾種不同程

演算法Forward Algorithm

計算觀察序列的概率(Finding the probability of an observed sequence) 2b.計算t=1時的區域性概率’s  我們按如下公式計算區域性概率:  t ( j )= Pr( 觀察狀態 | 隱藏狀態j ) x Pr(t時刻所有指向j狀態

鄰接表鏈式或vector

#include<bits/stdc++.h> #define maxn 100005 using namespace std; // 鏈式前向星 常數優秀,使用結構體可獲得更優秀的常數 int info[maxn],to[maxn<<1],Prev[maxn&

三種方式鄰接矩陣,鄰接表,鏈式

#include<cstdio> #include<vector> #include<cstring> #include<algorithm> #include <iostream> using namespace std; const i

堆優化dijstra

堆優化dijstra(前向星存圖) o(* ̄▽ ̄*)o 上一次學會了spfa安利spfa,激動的不得了,然而 emmmmmm 遇見了這樣的題。洛谷4779最短路標準版!連模板都無法AC使我十分不爽。 所以我決定學習堆優化dijstra。 手寫堆對於我而言是不存在的。所以~ST

的儲存與遍歷鏈式中的DFS與BFS

圖的儲存方式:1.圖的陣列(鄰接矩陣)儲存表示,其中無向圖的儲存方式為對稱矩陣陣列,有向圖的儲存方式為非對稱矩陣陣列。求最短路徑時常常採用陣列儲存表示各點間的路徑。2.邊集方法                    邊的定義:     stuct edge_set{     

鏈式儲存結構

一般來講,圖的常用儲存結構有鄰接矩陣,和鄰接表,但我們知道鄰接矩陣空間浪費太嚴重,鄰接表不好寫,今天來講一下圖的另一隻常用的儲存結構:前向星和鏈式前向星,介於上述兩種儲存結構之間的一種比較均衡的儲存結構。 首先我們來說一下圖的前向星表示方法: 前向星是一種通過儲存邊資訊的

關於的儲存方法 靜態鄰接表、、邊集陣列

一、鄰接矩陣(不多說了)  G[u][v] 二、鄰接表                   1、動態連結串列(指標)      一個數組表頭(u)+ struct結點(v),相鏈,若有權值等資訊再在結點裡加相應域。                   2、靜態連結串列(陣列

再談的儲存方式鄰接矩陣,鄰接表,

1.鄰接矩陣 1.存圖思想 使用一個矩陣來描述一個圖,對於矩陣的第i行第j列的值,表示編號為i的頂點到編號為j的頂點的權值。 2.程式碼實現 // 最大頂點數 const int V = 1000

【模板】 SPFA求最短

代碼 poj ostream name 兩個 col spfa ron esp 之前一個改自別人的模板竟然在一道題上TLE了,而代碼也實在醜陋,網上找得到的模板也大多跑得慢(vector存圖)或代碼醜陋、殘疾(無初始化函數的模板能叫模板嗎?),索性自己重新寫了一個。 題是P

算法筆記--儲之鏈式

算法筆記 div soft 鏈式前向星 target href 圖的存儲 blank 所有 鏈式前向星 這個博客寫的不錯:http://www.cnblogs.com/Tovi/p/6194786.html 模板: ①add_edge void add_e

最短路 spfa 算法 && 鏈式

.com mem ont .aspx 百度 dfs edit 時間復雜度 tails 推薦博客 https://i.cnblogs.com/EditPosts.aspx?opt=1      http://blog.csdn.net/mcdonnell_douglas/

POJ 3159 Candies差分約束+spfa+鏈式

void tdi div con pre ace != view ash 題目鏈接:http://poj.org/problem?id=3159 題目大意:給n個人派糖果,給出m組數據,每組數據包含A,B,C三個數,意思是A的糖果數比B少的個數不多於C,即B的糖果數 -

洛谷P3371單源最短路徑Dijkstra版鏈式處理

jks 沒有 style bool while add 是什麽 最短 短路徑 首先講解一下鏈式前向星是什麽。簡單的來說就是用一個數組(用結構體來表示多個量)來存一張圖,每一條邊的出結點的編號都指向這條邊同一出結點的另一個編號(怎麽這麽的繞) 如下面的程序就是存鏈式前向星。(

-深度理解鏈式

前向星 在接觸鏈式前向星之前,先了解一下什麼是前向星。 前向星就是一種邊集陣列。我們先把每條邊的起點按照從小到大的順序排序如果起點一樣,那麼就按照終點從小到達來排 序。並記錄下以某個點為起點的所有邊在陣列中的起始位置和邊的數量,那麼前向星就構造好了。 head[i]表示以i為起點

POJ -1062 昂貴的聘禮 &amp;&amp; SPFA

題目連結:昂貴的聘禮    這個題對自己收穫挺大的。模板要自己常常敲,才幹理解。要自己常常敲,從能溫故而知新。自己曾經總結的建圖方式。做題的時候要會用,要敢用。否則==NULL。 題意對於交換條件描寫敘述的有點不清楚,這裡解釋一下,如果8件物品