Professional Documents
Culture Documents
Queue Topsort Graphs
Queue Topsort Graphs
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import linear.Queue;
class Neighbor {
this.vertexNum = vnum;
next = nbr;
class Vertex {
String name;
Neighbor adjList;
this.name = name;
this.adjList = neighbors;
/**
Vertex[] adjLists;
boolean undirected=true;
if (graphType.equals("directed")) {
undirected=false;
// read vertices
// read edges
while (sc.hasNext()) {
int v1 = indexForName(sc.next());
int v2 = indexForName(sc.next());
// add v2 to front of v1's adjacency list and
if (undirected) {
if (adjLists[v].name.equals(name)) {
return v;
return -1;
if (!visited[v]) {
queue.clear();
}
// BFS starting at some vertex v
visited[start] = true;
queue.enqueue(start);
while (!queue.isEmpty()) {
int v = queue.dequeue();
if (!visited[vnum]) {
visited[vnum] = true;
queue.enqueue(vnum);
/**
* @param args
*/
throws IOException {
graph.bfs();
package linear;
import java.util.NoSuchElementException;
/**
*/
private T data;
this.data = data;
this.next = next;
rear = null;
size = 0;
if (rear == null) {
newItem.next = newItem;
} else {
newItem.next = rear.next;
rear.next = newItem;
size++;
rear = newItem;
public T dequeue()
throws NoSuchElementException {
if (rear == null) {
T data = rear.next.data;
if (rear == rear.next) {
rear = null;
} else {
rear.next = rear.next.next;
}
size--;
return data;
return size;
return size == 0;
size = 0;
rear = null;
public T peek()
throws NoSuchElementException {
if (rear == null) {
return rear.next.data;