여행용 세일즈맨 문제에 대한 분기 및 바운드 알고리즘을 연구 중이므로 약간의 장애가 있습니다. 나는 꼭지점 (경로)의 부분 집합을 나타내는 노드와 함께 꽤 표준 대기열을 사용하고 있습니다. 나는 모든 것을 처리했음을 확신하지만, 현재 공용 클래스 인 Queue를 가지고 있으며, 그 아래에 모든 속성 (현재 경로, 하한 등)이있는 private 클래스 Node가 있습니다.대기열을 사용하여 TSP (분기 및 바운드) 해결
그러나 내 메인 프로그램에서 노드 대기열을 초기화하고 두 개의 시작 노드를 만들지 만 "노드를 유형으로 확인할 수 없습니다"라는 오류가 발생합니다. Queue 클래스에 있었으므로 주 프로그램에 액세스 할 수 없기 때문에이 코드를 사용한다고 가정했지만,이 코드를 옮기면 노드에 연결된 항목에 오류가 발생합니다.
나는 이것이 정말로 의미가 있기를 바란다. 어떻게 설명해야할지 모르겠다. 그러나 다른 모든 것은 괜찮은 것처럼 보인다. 여기에 설명 내 코드 조각입니다 :
`public class Queue<Item> implements Iterable<Item> {
private int N; // number of elements on queue
private Node first; // beginning of queue
private Node last; // end of queue
// helper linked list class
public class Node {
public int level; //level on the tree
public int[] path; //current path
public int bound; //lower bound
public Item item;
public Node next; //the next in the path
public boolean inPath; //checks to see if the vertex is in the current path
public int missingV; //the vertex that is missing from the path
}`
즉 내가 노드 클래스를 선언하고 실제로 내 메인 프로그램에서 사용하는 곳입니다 : 주, 변화에
`public static void main(String args[]) {
int n = 4;
int[][] W = new int[][] {{0,2,4,7},{2,0,7,3},{4,7,0,5},{6,3,5,0}};
int[] opttour;
Queue<Node> PQ = new Queue<Node>();
Node u = new Node();
Node v = new Node();`