Professional Documents
Culture Documents
Yooooct 2
Yooooct 2
Yooooct 2
import java.util.*;
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
while (!nodeQueue.isEmpty()) {
SimpleEntry<TreeNode, Integer> entry = nodeQueue.poll();
TreeNode node = entry.getKey();
int col = entry.getValue();
verticalMap.computeIfAbsent(col, k -> new ArrayList<>()).add(node.val);
if (node.left != null) {
nodeQueue.offer(new SimpleEntry<>(node.left, col - 1));
}
if (node.right != null) {
nodeQueue.offer(new SimpleEntry<>(node.right, col + 1));
}
}
import java.util.*;
BFS(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; i++) {
adj[i] = new LinkedList();
}
}
void bFS(int s) {
boolean visited[] = new boolean[V];
Queue<Integer> queue = new LinkedList<Integer>();
visited[s] = true;
queue.add(s);
while (queue.size() != 0) {
s = queue.poll();
System.out.print(s + " ");
Iterator<Integer> i = adj[s].listIterator();
while (i.hasNext()) {
int n = i.next();
if (visited[n] == false) {
visited[n] = true;
queue.add(n);
}
}
}
}
DFS
import java.util.*;
DFS(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; i++) {
adj[i] = new LinkedList();
}
}
Iterator<Integer> i = adj[s].listIterator();
while (i.hasNext()) {
int n = i.next();
if (visited[n] == false)
dFSrec(n, visited);
}
}
void dFS(int s) {
boolean visited[] = new boolean[V];
dFSrec(s, visited);
}
Dial’s Algorithm
import java.util.*;
public class Graph {
static final int INF = Integer.MAX_VALUE;
private int V;
private ArrayList<ArrayList<Tuple>> adj;
public Graph(int v) {
this.V = v;
this.adj = new ArrayList<ArrayList<Tuple>>();
for (int i = 0; i < v; i++)
this.adj.add(new ArrayList<Tuple>());
}
Tuple(int v, int w) {
this.v = v;
this.w = w;
}
}
Bellman-Ford Algorithm
import java.util.*;
class Main {
class Edge {
int src, dest, weight;
Edge() {
src = dest = weight = 0;
}
};
int V, E;
Edge edge[];
Main(int v, int e) {
V = v;
E = e;
edge = new Edge[e];
for (int i = 0; i < e; ++i)
edge[i] = new Edge();
}
Heap Sort
import java.util.*;
BINOMIAL HEAP
import java.util.*;
class BinomialHeapNode {
int key, degree;
BinomialHeapNode parent;
BinomialHeapNode sibling;
BinomialHeapNode child;
public BinomialHeapNode(int k) {
key = k;
degree = 0;
parent = null;
sibling = null;
child = null;
}
class BinomialHeap {
private BinomialHeapNode Nodes;
private int size;
public BinomialHeap() {
Nodes = null;
size = 0;
}
Winner Tree
import java.util.*;
class Node {
int idx;
Node left, right;
}
TOPOLOGICAL SORT
import java.util.*;
TopologicalSort(int v) {
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; i++) {
adj[i] = new LinkedList();
}
}
void TopoSort() {
Stack<Integer> stack = new Stack<>();
boolean visited[] = new boolean[V];
for (int i = 0; i < V; i++) {
if (!visited[i]) {
TopoSortRec(i, visited, stack);
}
}
while (!stack.empty())
System.out.print(stack.pop() + " ");
}
while (true) {
v = s.nextInt();
e = s.nextInt();
if (v == -1 && e == -1)
break;
graph.addEdges(v, e);
}
graph.TopoSort();
}
}