DAA working programs
DAA working programs
DAA working programs
*;
import java.util.Random;
class BST {
static class Node {
int key;
Node left, right;
class Graph {
private int V; // Number of vertices
private LinkedList<Integer> adjList[];
Graph(int v) {
V = v;
adjList = new LinkedList[v];
for (int i = 0; i < v; ++i)
adjList[i] = new LinkedList();
}
void BFS(int s) {
boolean visited[] = new boolean[V];
LinkedList<Integer> queue = new LinkedList<>();
visited[s] = true;
queue.add(s);
while (queue.size() != 0) {
s = queue.poll();
System.out.print(s + " ");
Iterator<Integer> i = adjList[s].listIterator();
while (i.hasNext()) {
int n = i.next();
if (!visited[n]) {
visited[n] = true;
queue.add(n);
}
}
}
}
}
import java.util.*;
class Graph {
private int V; // Number of vertices
private LinkedList<Integer>[] adj; // Adjacency list
Graph(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; i++) {
adj[i] = new LinkedList<>();
}
}
void topologicalSort() {
Stack<Integer> stack = new Stack<>();
boolean[] visited = new boolean[V];
for (int i = 0; i < V; i++) {
if (!visited[i]) {
topologicalSortUtil(i, visited, stack);
}
}
while (!stack.isEmpty()) {
System.out.print(stack.pop() + " ");
}
}
}
import java.util.*;
class WarshallTransitiveClosure {
private int V;
private boolean[][] tc;
WarshallTransitiveClosure(int vertices) {
V = vertices;
tc = new boolean[vertices][vertices];
}
void computeTransitiveClosure() {
for (int k = 0; k < V; k++) {
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
tc[i][j] = tc[i][j] || (tc[i][k] && tc[k][j]);
}
}
}
}
void printTransitiveClosure() {
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
System.out.print(tc[i][j] ? "1 " : "0 ");
}
System.out.println();
}
}
}
import java.util.Scanner;
public GraphDFS(int v) {
vertices = v;
adjacencyMatrix = new int[v][v];
}
import java.util.Scanner;
sc.close();
}
}
import java.util.Arrays;
import java.util.Scanner;
import java.util.Scanner;
return dp[n][capacity];
}
=====================================================================================
import java.util.Scanner;
import java.util.Scanner;
int find(int m) {
int p = m;
while (parent[p] != 0)
p = parent[p];
return p;
}
=====================================================================================
import java.util.Scanner;
import java.util.Arrays;
if (mask == (1 << n) - 1) {
return graph[current][start];
}
if (memo[mask][current] != -1) {
return memo[mask][current];
}
int minCost = Integer.MAX_VALUE;
memo[mask][current] = minCost;
return minCost;
}
=====================================================================================
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
return subset;
}
}