STL이 사용된 소스입니다.
(1) #include "queue.h"이 부분을 아래와 같이 바꾸고 그 밑에 부분을 추가 하세요..
#include <queue>
using namespace std ;
(2) Queue<int> q; // 여깁니다. 여기~~ 111 번
윗 부분은 queue<int> q ; 이렇게 바꾸시고요.. STL 에서 컨테이너 선언은 소문자로 시작
합니다.
(3) q.Insert(v); // 112번줄. 밑에 에러메시지 써놨습니다.
그리고 queue는 Insert 멤버가 존재하니 않습니다. 그래서 생긴 에러 입니다.
BFS 함수를 아래와 같이 바꾸어 보세요.. 그런데 4 까지 탐색한 후에 종료됩니다..^^;;
탐색이 끝까지 안되는데 시간이 별로 없어서 그래프 분석을 못해봐서 결과가 맞는지는 모르겠네요
여기까지만 바꾸어 드립니다.
..
void Graph::BFS(int v)
{
visited=new Bool[size];
for(int i=0; i<size; i++) visited[i]=False;
visited[v]=True;
queue<int> q; // 여깁니다. 여기~~ 111 번
q.push(v); // 112번줄. 밑에 에러메시지 써놨습니다.
while( !q.empty() )
{
v = q.back() ; // front() ;
cout << v << " ";
for(GraphNode *p=graph[v]; p; p=p->link)
if( !visited[p->vertex] )
{
q.push(p->vertex);
visited[p->vertex]=True;
}
q.pop() ;
}
delete[] visited;
}
|