當前位置:首頁 » 操作系統 » 圖的演算法

圖的演算法

發布時間: 2022-01-10 10:58:22

『壹』 圖的同構演算法是什麼

提出了圖的同構判定新演算法,即關聯度序列法和黃金分割關聯度序列法.後者的計算時間復雜性遠遠低於2N(N為圖的頂點數),已接近於多項式時間復雜性.該演算法可應用於很多能用圖來描述的模式識別等實際問題

『貳』 數據結構中圖的建立及演算法實現

#include<stdio.h>
#include<stdlib.h>
#define MaxSize 20
struct ArcNode
{
int adjvex;
struct ArcNode *nextarc;
};
struct Vnode
{
int data;
struct ArcNode *firstarc;
};
struct Vnode AdjList[MaxSize];
int m,n,v,cord;
void main()
{
void creatgraph(struct Vnode A[MaxSize]);
void dfs(struct Vnode A[MaxSize]);
do
{
printf("\n 主菜單");
printf("\n 1 建立無向圖的鄰接表");
printf("\n 2 按深度遍歷圖");
printf("\n 3 結束程序運行");
printf("\n-----------------------------------");
printf("\n 請輸入您的選擇 1, 2, 3 -->");
scanf("%d",&cord);
switch(cord)
{
case 1:
creatgraph(AdjList);
break;
case 2:
dfs(AdjList);
break;
case 3:
exit(0);
}
}while(cord<=3);
}//main end
void creatgraph(struct Vnode A[MaxSize])
{
int i,j,k;
struct ArcNode *p;
printf("input arces and vexes:");
scanf("%d %d",&m,&n);
for(k=0;k<n;k++)
{
printf("\ninput arc:");
scanf("%d%d",&i,&j);
p=(struct ArcNode*)malloc(sizeof(struct ArcNode));
p->adjvex=j;
p->nextarc=A[i-1].firstarc;
A[i-1].firstarc=p;
p=(struct ArcNode*)malloc(sizeof(struct ArcNode));
p->adjvex=i;
p->nextarc=A[j-1].firstarc;
A[j-1].firstarc=p;
}
printf("\n");
for(k=0;k<n;k++)
{
printf("%d",A[k].data);
p=A[k].firstarc;
while(p)
{
printf("%d",p->adjvex);
p=p->nextarc;
}
printf("\n");
}
}///creatgraph end
void dfs(struct Vnode A[MaxSize])
{
struct ArcNode *p,*ar[MaxSize];
int x,i,y,top=-1;
int visited[MaxSize];
for(i=0;i<n;i++)
visited[i]=0;
printf("\ninput x:");
scanf("%d",&x);
printf("%d",x);
visited[x-1]=1;
p=A[x-1].firstarc;
while((p)||(top>=0))
{
if(!p)
{
p=ar[top];
top--;
}
y=p->adjvex;
if(visited[y-1]==0)
{
visited[y-1]=1;
printf("->%d",y);
p=p->nextarc;
if(p)
{
top++;
ar[top]=p;
}
p=A[y-1].firstarc;
}
else p=p->nextarc;
}
}

『叄』 圖的演算法中,

負圈又稱負環,就是說一個全部由負權的邊組成的環,這樣的話不存在最短路,因為每在環中轉一圈路徑總長就會邊小.

『肆』 求一個圖的最大完全子圖的演算法

最大完全子圖,超超的地址我打不開
用度的方法是不行的,因為完全子圖可能每一個結點的度都不一樣

我想能不能這樣:
從某一個結點開始深度優先遍歷,同時用一個路徑數組記錄下遍歷走過的每一個結點,每進入遍歷結點,先看看該結點的鄰接點是否包含已知路徑上的所有結點,若是,則把該結點加入路徑數組,繼續從新結點遍歷;若不是,回溯到上一結點;這樣直到無法回溯(另外設置一個訪問狀態數組VisitIN[],起始結點的所有鄰接點VisitIN值為1就無法回溯了)就找到一個完全子圖

把起始結點訪問狀態Visit[]改為1,繼續從下一結點出發重復上述過程,直到找到最大的完全子圖。(演算法的關鍵是判斷某一結點的鄰接點是否包含路徑數組的所有結點)

不過這樣做復雜度是高的了,我還沒想到更好的方法。

各點度不一樣不要緊,可以降低一級,再查。如下圖中,最大度數為3,先找是否有另外3個3度點且都1-1相連,發現沒有,就降為尋找有否3個2度點相互都1-1相連,這樣就找到了。

2
*
/ \
/ \
*-----*----*----*
2 3 2 1

『伍』 程序框圖演算法的特點是什麼

①只有一個入口;

②只有一個出口.
菱形判斷框有兩個出口,而條件結構只有一個出口,不要將菱形框的出口和條件結構的出口混為一談;

③結構內的每一部分都有機會被執行到.
即對每一個框來說都應當有一條從入口到出口的路徑通過它;

④結構內不存在死循環.
在程序框圖中不允許有死循環出現.
①順序結構的特點是:演算法按照書寫順序執行;

②條件結構的特點是:演算法中需要進行判斷,判斷的結果決定後面的步驟;

③循環結構的三個要素:循環變數、循環體和循環終止條件.

『陸』 圖像處理的演算法有哪些

圖像處理基本演算法操作從處理對象的多少可以有如下劃分:
一)點運算:處理點單元信息的運算
二)群運算:處理群單元 (若干個相鄰點的集合)的運算
1.二值化操作
圖像二值化是圖像處理中十分常見且重要的操作,它是將灰度圖像轉換為二值圖像或灰度圖像的過程。二值化操作有很多種,例如一般二值化、翻轉二值化、截斷二值化、置零二值化、置零翻轉二值化。
2.直方圖處理
直方圖是圖像處理中另一重要處理過程,它反映圖像中不同像素值的統計信息。從這句話我們可以了解到直方圖信息僅反映灰度統計信息,與像素具體位置沒有關系。這一重要特性在許多識別類演算法中直方圖處理起到關鍵作用。
3.模板卷積運算
模板運算是圖像處理中使用頻率相當高的一種運算,很多操作可以歸結為模板運算,例如平滑處理,濾波處理以及邊緣特徵提取處理等。這里需要說明的是模板運算所使用的模板通常說來就是NXN的矩陣(N一般為奇數如3,5,7,...),如果這個矩陣是對稱矩陣那麼這個模板也稱為卷積模板,如果不對稱則是一般的運算模板。我們通常使用的模板一般都是卷積模板。如邊緣提取中的Sobel運算元模板。

『柒』 有關圖劃分演算法

首先,最多劃分為兩部分,因為如果大於等於3部分,那麼將其中任意兩個部分合並可以優化答案。
這樣問題就是求無向圖的邊連通度的問題了,可以用網路流來解決。具體演算法可以參考《圖論演算法與信息學競賽》這本書。

『捌』 數據結構圖的演算法

『玖』 有向圖的演算法

樓上的真是,估計沒明白樓主意思吧。。。明顯可以證明這個圖是完全強連通的,這個也不難看出來。
但是這個問題本身比較怪異,開始懷疑是不是 NP。

初步感覺,應該歸約成某種網路流吧。。

我再想想吧。。想到了再貼上來吧,樓主放這么重本,不想出來也不好意思收啊。。

『拾』 什麼是圖計算

簡單地說就是利用設計單位已經有的圖形計算處處這個圖形中各個構建的量,然後匯總,其實就是為了計算造價用得。可以用手算,也可以用軟體計算,

熱點內容
安卓手機如何使用印象筆記剪影 發布:2024-11-16 12:32:18 瀏覽:177
電腦伺服器在哪裡輸入 發布:2024-11-16 12:27:22 瀏覽:263
魅族16th如何設置熱點密碼 發布:2024-11-16 12:22:15 瀏覽:396
浙江密碼文件櫃哪裡有 發布:2024-11-16 12:20:34 瀏覽:953
c語言逆序輸出整數 發布:2024-11-16 12:20:31 瀏覽:797
藍橋杯c語言 發布:2024-11-16 12:20:24 瀏覽:398
安卓陣營哪個手機外放好 發布:2024-11-16 12:16:02 瀏覽:651
國外雲伺服器免費 發布:2024-11-16 12:13:49 瀏覽:554
蘇寧茅台腳本 發布:2024-11-16 12:12:18 瀏覽:252
訪問乞丐 發布:2024-11-16 12:07:19 瀏覽:436