#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX 5
struct Vertex {
char label;
bool visited;
};
//queue variables
int queue[MAX];
int rear = -1;
int front = 0;
int queueItemCount = 0;
//graph variables
//array of vertices
struct Vertex* lstVertices[MAX];
//adjacency matrix
int adjMatrix[MAX][MAX];
//vertex count
int vertexCount = 0;
//queue functions
void insert(int data) {
queue[++rear] = data;
queueItemCount++;
}
int removeData() {
queueItemCount--;
return queue[front++];
}
bool isQueueEmpty() {
return queueItemCount == 0;
}
//graph functions
//add vertex to the vertex list
void addVertex(char label) {
struct Vertex* vertex = (struct Vertex*) malloc(sizeof(struct Vertex));
vertex->label = label;
vertex->visited = false;
lstVertices[vertexCount++] = vertex;
}
//add edge to edge array
void addEdge(int start,int end) {
adjMatrix[start][end] = 1;
adjMatrix[end][start] = 1;
}
//display the vertex
void displayVertex(int vertexIndex) {
printf("%c ",lstVertices[vertexIndex]->label);
}
//get the adjacent unvisited vertex
int getAdjUnvisitedVertex(int vertexIndex) {
int i;
for(i = 0; i<vertexCount; i++) {
if(adjMatrix[vertexIndex][i] == 1 && lstVertices[i]->visited == false)
return i;
}
return -1;
}
void breadthFirstSearch() {
int i;
//mark first node as visited
lstVertices[0]->visited = true;
//display the vertex
displayVertex(0);
//insert vertex index in queue
insert(0);
int unvisitedVertex;
while(!isQueueEmpty()) {
//get the unvisited vertex of vertex which is at front of the queue
int tempVertex = removeData();
//no adjacent vertex found
while((unvisitedVertex = getAdjUnvisitedVertex(tempVertex)) != -1) {
lstVertices[unvisitedVertex]->visited = true;
displayVertex(unvisitedVertex);
insert(unvisitedVertex);
}
}
//queue is empty, search is complete, reset the visited flag
for(i = 0;i<vertexCount;i++) {
lstVertices[i]->visited = false;
}
}
int main() {
int i, j;
for(i = 0; i<MAX; i++) // set adjacency {
for(j = 0; j<MAX; j++) // matrix to 0
adjMatrix[i][j] = 0;
}
addVertex('S'); // 0
addVertex('A'); // 1
addVertex('B'); // 2
addVertex('C'); // 3
addVertex('D'); // 4
addEdge(0, 1); // S - A
addEdge(0, 2); // S - B
addEdge(0, 3); // S - C
addEdge(1, 4); // A - D
addEdge(2, 4); // B - D
addEdge(3, 4); // C - D
printf("\nBreadth First Search: ");
breadthFirstSearch();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGJvb2wuaD4KCiNkZWZpbmUgTUFYIDUKCnN0cnVjdCBWZXJ0ZXggewogICBjaGFyIGxhYmVsOwogICBib29sIHZpc2l0ZWQ7Cn07CgovL3F1ZXVlIHZhcmlhYmxlcwoKaW50IHF1ZXVlW01BWF07CmludCByZWFyID0gLTE7CmludCBmcm9udCA9IDA7CmludCBxdWV1ZUl0ZW1Db3VudCA9IDA7CgovL2dyYXBoIHZhcmlhYmxlcwoKLy9hcnJheSBvZiB2ZXJ0aWNlcwpzdHJ1Y3QgVmVydGV4KiBsc3RWZXJ0aWNlc1tNQVhdOwoKLy9hZGphY2VuY3kgbWF0cml4CmludCBhZGpNYXRyaXhbTUFYXVtNQVhdOwoKLy92ZXJ0ZXggY291bnQKaW50IHZlcnRleENvdW50ID0gMDsKCi8vcXVldWUgZnVuY3Rpb25zCgp2b2lkIGluc2VydChpbnQgZGF0YSkgewogICBxdWV1ZVsrK3JlYXJdID0gZGF0YTsKICAgcXVldWVJdGVtQ291bnQrKzsKfQoKaW50IHJlbW92ZURhdGEoKSB7CiAgIHF1ZXVlSXRlbUNvdW50LS07CiAgIHJldHVybiBxdWV1ZVtmcm9udCsrXTsgCn0KCmJvb2wgaXNRdWV1ZUVtcHR5KCkgewogICByZXR1cm4gcXVldWVJdGVtQ291bnQgPT0gMDsKfQoKLy9ncmFwaCBmdW5jdGlvbnMKCi8vYWRkIHZlcnRleCB0byB0aGUgdmVydGV4IGxpc3QKdm9pZCBhZGRWZXJ0ZXgoY2hhciBsYWJlbCkgewogICBzdHJ1Y3QgVmVydGV4KiB2ZXJ0ZXggPSAoc3RydWN0IFZlcnRleCopIG1hbGxvYyhzaXplb2Yoc3RydWN0IFZlcnRleCkpOwogICB2ZXJ0ZXgtPmxhYmVsID0gbGFiZWw7ICAKICAgdmVydGV4LT52aXNpdGVkID0gZmFsc2U7ICAgICAKICAgbHN0VmVydGljZXNbdmVydGV4Q291bnQrK10gPSB2ZXJ0ZXg7Cn0KCi8vYWRkIGVkZ2UgdG8gZWRnZSBhcnJheQp2b2lkIGFkZEVkZ2UoaW50IHN0YXJ0LGludCBlbmQpIHsKICAgYWRqTWF0cml4W3N0YXJ0XVtlbmRdID0gMTsKICAgYWRqTWF0cml4W2VuZF1bc3RhcnRdID0gMTsKfQoKLy9kaXNwbGF5IHRoZSB2ZXJ0ZXgKdm9pZCBkaXNwbGF5VmVydGV4KGludCB2ZXJ0ZXhJbmRleCkgewogICBwcmludGYoIiVjICIsbHN0VmVydGljZXNbdmVydGV4SW5kZXhdLT5sYWJlbCk7Cn0gICAgICAgCgovL2dldCB0aGUgYWRqYWNlbnQgdW52aXNpdGVkIHZlcnRleAppbnQgZ2V0QWRqVW52aXNpdGVkVmVydGV4KGludCB2ZXJ0ZXhJbmRleCkgewogICBpbnQgaTsKCQogICBmb3IoaSA9IDA7IGk8dmVydGV4Q291bnQ7IGkrKykgewogICAgICBpZihhZGpNYXRyaXhbdmVydGV4SW5kZXhdW2ldID09IDEgJiYgbHN0VmVydGljZXNbaV0tPnZpc2l0ZWQgPT0gZmFsc2UpCiAgICAgICAgIHJldHVybiBpOwogICB9CgkKICAgcmV0dXJuIC0xOwp9Cgp2b2lkIGJyZWFkdGhGaXJzdFNlYXJjaCgpIHsKICAgaW50IGk7CgogICAvL21hcmsgZmlyc3Qgbm9kZSBhcyB2aXNpdGVkCiAgIGxzdFZlcnRpY2VzWzBdLT52aXNpdGVkID0gdHJ1ZTsKCiAgIC8vZGlzcGxheSB0aGUgdmVydGV4CiAgIGRpc3BsYXlWZXJ0ZXgoMCk7ICAgCgogICAvL2luc2VydCB2ZXJ0ZXggaW5kZXggaW4gcXVldWUKICAgaW5zZXJ0KDApOwogICBpbnQgdW52aXNpdGVkVmVydGV4OwoKICAgd2hpbGUoIWlzUXVldWVFbXB0eSgpKSB7CiAgICAgIC8vZ2V0IHRoZSB1bnZpc2l0ZWQgdmVydGV4IG9mIHZlcnRleCB3aGljaCBpcyBhdCBmcm9udCBvZiB0aGUgcXVldWUKICAgICAgaW50IHRlbXBWZXJ0ZXggPSByZW1vdmVEYXRhKCk7ICAgCgogICAgICAvL25vIGFkamFjZW50IHZlcnRleCBmb3VuZAogICAgICB3aGlsZSgodW52aXNpdGVkVmVydGV4ID0gZ2V0QWRqVW52aXNpdGVkVmVydGV4KHRlbXBWZXJ0ZXgpKSAhPSAtMSkgeyAgICAKICAgICAgICAgbHN0VmVydGljZXNbdW52aXNpdGVkVmVydGV4XS0+dmlzaXRlZCA9IHRydWU7CiAgICAgICAgIGRpc3BsYXlWZXJ0ZXgodW52aXNpdGVkVmVydGV4KTsKICAgICAgICAgaW5zZXJ0KHVudmlzaXRlZFZlcnRleCk7ICAgICAgICAgICAgICAgCiAgICAgIH0KCQkKICAgfSAgIAoKICAgLy9xdWV1ZSBpcyBlbXB0eSwgc2VhcmNoIGlzIGNvbXBsZXRlLCByZXNldCB0aGUgdmlzaXRlZCBmbGFnICAgICAgICAKICAgZm9yKGkgPSAwO2k8dmVydGV4Q291bnQ7aSsrKSB7CiAgICAgIGxzdFZlcnRpY2VzW2ldLT52aXNpdGVkID0gZmFsc2U7CiAgIH0gICAgCn0KCmludCBtYWluKCkgewogICBpbnQgaSwgajsKCiAgIGZvcihpID0gMDsgaTxNQVg7IGkrKykgLy8gc2V0IGFkamFjZW5jeSB7CiAgICAgIGZvcihqID0gMDsgajxNQVg7IGorKykgLy8gbWF0cml4IHRvIDAKICAgICAgICAgYWRqTWF0cml4W2ldW2pdID0gMDsKICAgfQoKICAgYWRkVmVydGV4KCdTJyk7ICAgLy8gMAogICBhZGRWZXJ0ZXgoJ0EnKTsgICAvLyAxCiAgIGFkZFZlcnRleCgnQicpOyAgIC8vIDIKICAgYWRkVmVydGV4KCdDJyk7ICAgLy8gMwogICBhZGRWZXJ0ZXgoJ0QnKTsgICAvLyA0CiAKICAgYWRkRWRnZSgwLCAxKTsgICAgLy8gUyAtIEEKICAgYWRkRWRnZSgwLCAyKTsgICAgLy8gUyAtIEIKICAgYWRkRWRnZSgwLCAzKTsgICAgLy8gUyAtIEMKICAgYWRkRWRnZSgxLCA0KTsgICAgLy8gQSAtIEQKICAgYWRkRWRnZSgyLCA0KTsgICAgLy8gQiAtIEQKICAgYWRkRWRnZSgzLCA0KTsgICAgLy8gQyAtIEQKCQogICBwcmludGYoIlxuQnJlYWR0aCBGaXJzdCBTZWFyY2g6ICIpOwogICAKICAgYnJlYWR0aEZpcnN0U2VhcmNoKCk7CgogICByZXR1cm4gMDsKfQ==
Main.java:1: error: illegal character: '#'
#include <stdio.h>
^
Main.java:1: error: class, interface, or enum expected
#include <stdio.h>
^
Main.java:2: error: illegal character: '#'
#include <stdlib.h>
^
Main.java:3: error: illegal character: '#'
#include <stdbool.h>
^
Main.java:5: error: illegal character: '#'
#define MAX 5
^
Main.java:9: error: class, interface, or enum expected
bool visited;
^
Main.java:10: error: class, interface, or enum expected
};
^
Main.java:14: error: class, interface, or enum expected
int queue[MAX];
^
Main.java:15: error: class, interface, or enum expected
int rear = -1;
^
Main.java:16: error: class, interface, or enum expected
int front = 0;
^
Main.java:17: error: class, interface, or enum expected
int queueItemCount = 0;
^
Main.java:22: error: class, interface, or enum expected
struct Vertex* lstVertices[MAX];
^
Main.java:25: error: class, interface, or enum expected
int adjMatrix[MAX][MAX];
^
Main.java:28: error: class, interface, or enum expected
int vertexCount = 0;
^
Main.java:32: error: class, interface, or enum expected
void insert(int data) {
^
Main.java:34: error: class, interface, or enum expected
queueItemCount++;
^
Main.java:35: error: class, interface, or enum expected
}
^
Main.java:39: error: class, interface, or enum expected
return queue[front++];
^
Main.java:40: error: class, interface, or enum expected
}
^
Main.java:44: error: class, interface, or enum expected
}
^
Main.java:51: error: class, interface, or enum expected
vertex->label = label;
^
Main.java:52: error: class, interface, or enum expected
vertex->visited = false;
^
Main.java:53: error: class, interface, or enum expected
lstVertices[vertexCount++] = vertex;
^
Main.java:54: error: class, interface, or enum expected
}
^
Main.java:59: error: class, interface, or enum expected
adjMatrix[end][start] = 1;
^
Main.java:60: error: class, interface, or enum expected
}
^
Main.java:65: error: class, interface, or enum expected
}
^
Main.java:71: error: class, interface, or enum expected
for(i = 0; i<vertexCount; i++) {
^
Main.java:71: error: class, interface, or enum expected
for(i = 0; i<vertexCount; i++) {
^
Main.java:71: error: class, interface, or enum expected
for(i = 0; i<vertexCount; i++) {
^
Main.java:74: error: class, interface, or enum expected
}
^
Main.java:77: error: class, interface, or enum expected
}
^
Main.java:83: error: class, interface, or enum expected
lstVertices[0]->visited = true;
^
Main.java:86: error: class, interface, or enum expected
displayVertex(0);
^
Main.java:89: error: class, interface, or enum expected
insert(0);
^
Main.java:90: error: class, interface, or enum expected
int unvisitedVertex;
^
Main.java:92: error: class, interface, or enum expected
while(!isQueueEmpty()) {
^
Main.java:97: error: class, interface, or enum expected
while((unvisitedVertex = getAdjUnvisitedVertex(tempVertex)) != -1) {
^
Main.java:99: error: class, interface, or enum expected
displayVertex(unvisitedVertex);
^
Main.java:100: error: class, interface, or enum expected
insert(unvisitedVertex);
^
Main.java:101: error: class, interface, or enum expected
}
^
Main.java:106: error: class, interface, or enum expected
for(i = 0;i<vertexCount;i++) {
^
Main.java:106: error: class, interface, or enum expected
for(i = 0;i<vertexCount;i++) {
^
Main.java:108: error: class, interface, or enum expected
}
^
Main.java:114: error: class, interface, or enum expected
for(i = 0; i<MAX; i++) // set adjacency {
^
Main.java:114: error: class, interface, or enum expected
for(i = 0; i<MAX; i++) // set adjacency {
^
Main.java:114: error: class, interface, or enum expected
for(i = 0; i<MAX; i++) // set adjacency {
^
Main.java:115: error: class, interface, or enum expected
for(j = 0; j<MAX; j++) // matrix to 0
^
Main.java:115: error: class, interface, or enum expected
for(j = 0; j<MAX; j++) // matrix to 0
^
Main.java:117: error: class, interface, or enum expected
}
^
Main.java:120: error: class, interface, or enum expected
addVertex('A'); // 1
^
Main.java:121: error: class, interface, or enum expected
addVertex('B'); // 2
^
Main.java:122: error: class, interface, or enum expected
addVertex('C'); // 3
^
Main.java:123: error: class, interface, or enum expected
addVertex('D'); // 4
^
Main.java:125: error: class, interface, or enum expected
addEdge(0, 1); // S - A
^
Main.java:126: error: class, interface, or enum expected
addEdge(0, 2); // S - B
^
Main.java:127: error: class, interface, or enum expected
addEdge(0, 3); // S - C
^
Main.java:128: error: class, interface, or enum expected
addEdge(1, 4); // A - D
^
Main.java:129: error: class, interface, or enum expected
addEdge(2, 4); // B - D
^
Main.java:130: error: class, interface, or enum expected
addEdge(3, 4); // C - D
^
Main.java:132: error: class, interface, or enum expected
printf("\nBreadth First Search: ");
^
Main.java:134: error: class, interface, or enum expected
breadthFirstSearch();
^
Main.java:136: error: class, interface, or enum expected
return 0;
^
Main.java:137: error: class, interface, or enum expected
}
^
64 errors