그림 의 깊이 우선 이동 (DFS)
10760 단어 데이터 구조 와 알고리즘데이터 구조
#define MaxSize 5
#define INF 100
//
typedef struct ArcNode{
int adjvex;
struct ArcNode* nextArc;
}ArcNode;
typedef struct{
char data;
ArcNode* firstArc;
}VNode;
typedef struct{
VNode adjList[MaxSize];
int n;
int e;
}AGraph;
int visit[MaxSize];
void initAGraph(AGraph* &G){
G->e = 2;
G->n = 3;
cout<<"data:"<<endl;
for (int i = 0; i < G->n; i++) {
cin>>G->adjList[i].data;
G->adjList[i].firstArc = NULL;
}
cout<<"vi,vj"<<endl;
for (int j = 0; j < G->e; j++) {
int vi,vj;
cin>>vi>>vj;
ArcNode* node = new ArcNode();
node->adjvex = vj;
node->nextArc = G->adjList[vi].firstArc;
G->adjList[vi].firstArc = node;
}
}
void DFS(AGraph *G,int v){
ArcNode *p;
visit[v] = 1;
cout<<"current:"<<G->adjList[v].data<<endl;
p = G->adjList[v].firstArc;
while (p != NULL) {
if (visit[p->adjvex] == 0) {
DFS(G, p->adjvex);
p = p->nextArc;
}
}
}
int main(int argc, const char * argv[]) {
AGraph* G = new AGraph();
initAGraph(G);
for (int i = 0; i < G->e; i++) {
if (visit[i] == 0) {
DFS(G, i);
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA] 배열 회전 출력요소 가 출력 을 시작 하 는 위치 에 주의 하 십시오. 모두 몇 라운드 의 수출 이 있 습 니까? n/2 + 1 매 라 운 드 는 상, 우, 하, 좌 로 나 뉜 다. 각 방향의 시작 위치 와 좌표 의 관 계 를 구...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.