圖像的儲存
對於圖像的儲存,有兩種方法,一是通過二維數組存儲,當然這種最簡單,只需要記錄每一個點的權值就行啦!但是呢,這種方法儲存不了太大的圖像,因爲數組開的不可以太大。所以,就有了第二種方法,就是用鄰接表(就是鏈表啦)儲存圖像(鏈表還沒搞明白),鄰接表裏面存有指向頂點的值,指向下一個節點的值,還有就是權值啦。(反正就是搞不懂,哼!)
代碼如下:
#include<bits/stdc++.h>
using namespace std;
const int maxn=10010;
int map[maxn][maxn];
//圖的常用的存儲方式兩種 一種採用鄰接矩陣(簡單的說就是採用二維數組直接存儲)
//另一種採用臨界表(實際上採用鏈表的存儲方式)
const int maxn = 5010;
struct Node{
int next; //指向下一個節點
int to; //指向的頂點
int value; //邊權值
}A[maxn<<1];
int head[maxn],node; //記錄頭結點 記錄節點的數目
void add(int u,int v,int value){
A[node].to=v;
A[node].value=value;
A[node].next=head[u];
head[u]=node++;
}
void init(){
node=0;
memset(head,-1,sizeof(head));
}
void Find(int u){
for(int i=head[u];i!=-1;i=A[i].next){
A[i].to;A[i].value;Find(A[i].to);
}
}
int main()
{
//給出n個頂點 m條邊 以及每條邊的權值
int n,m,u,v,value;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i){
u v valu
map[u][v]=value;
scanf("%d%d%d",&u,&v,&value);
add(u,v,value);add(v,u,value);
}
return 0;
}