가중치가없는 그래프 및 몇 가지 질문/우려 사항에 대한 인접성 목록을 구현하려고합니다. 나는 꼭지점을 저장할 수있는 링크 된 목록과 꼭지점을 저장할 배열이 필요하다는 것을 알고 있습니다. 현재 (기본) Node 클래스와 특정 꼭지점에 가장자리를 추가하는 Graph 클래스가 있습니다. 그러나 이것은 가장자리에 대한 링크 된 목록을 명시 적으로 정의하지는 않습니다. DFS와 BFS를하고 싶습니다. 어떻게해야합니까? 이미 이러한 방법을 통합해야하는 코드를 변경해야합니까? 도움을 받으실 수 있습니다. 코드에인접 목록 구현 그래프
// Inside the graph class
public boolean insertNode(NodeRecord n) {
int j;
if (isFull()) return false;
for (j=0; j<arraySize; j++)
if (node[j]==null)
break;
node[j] = new Node(n);
graphSize++;
return true;
}
public boolean insertEdge(int nodeID, EdgeRecord e) {
int j;
for (j=0; j<arraySize; j++)
if (nodeID==((NodeRecord) node[j].item).getID())
break;
if (j>=arraySize) return false;
node[j].next = new Node(e, node[j].next);
return true;
}
// inside the node class
class Node<E> {
E item;
Node<E> next;
Node(E e) {
item = e;
next = null;
}
Node(E e, Node<E> newNext) {
item = e;
next = newNext;
}
Node(Node<E> n) { // copy constructor
item = n.item;
next = n.next;
}
}
public static void depthFirst(){
for(int i=0;i<mygraph.arraySize;i++){
Node counter =mygraph.node[i];
while(counter!=null){
System.out.println(" " +counter.item);
counter= counter.next;
}
}
}
입력이 고정되어 있으므로 arraylist가 필요하지 않습니다. 링크 된 목록 문제에 대한 귀하의 요지를 이해했으며 이는 위에 게시 한 질문 중 하나입니다. 그러나, 나는 정말 링크 된 목록을하지 않도록 간단한 루프를 사용하여 특정 노드의 모든 가장자리에 액세스 할 수있는 것으로 나타났습니다. 코드는 지시되지 않은 문제를 처리합니다. 내 질문은 DFS 및 BF 메서드 코딩에 대해 이동하는 방법입니다. – dawnoflife
거기에 몇 가지 코드가 추가되었습니다. 그것이 의미가 있기를 바랍니다. – dawnoflife