Created by Utkarsharora On 3/3/17. /: E V Al Marked Stack V Al Marked Stack Al
Created by Utkarsharora On 3/3/17. /: E V Al Marked Stack V Al Marked Stack Al
graphs;
import java.io.*;
import java.util.*;
/**
* Created by utkarsharora on 3/3/17.
*/
public class TopologicalSortAlgo {
private int E, V;
private ArrayList<ArrayList<Integer>> al;
private boolean marked[];
private Stack<Integer> stack;
TopologicalSortAlgo(int V){
this.V = V;
al = new ArrayList<>();
marked = new boolean[V];
stack = new Stack<>();
for(int i=0;i<V;++i){
al.add(new ArrayList<>());
}
}
ts.addEdge(3, 2);
ts.addEdge(3, 5);
ts.addEdge(3, 6);
ts.addEdge(6, 4);
ts.addEdge(6, 0);
ts.addEdge(1, 4);
package stackproblems;
import java.util.EmptyStackException;
/**
* Created by utkarsharora on 3/13/17.
*/
public class FindMiddleStack<T> {
private Node<T> top;
private Node<T> middle;
private int size = 0;
size++;
if (size % 2 == 0) {
middle = middle.right;
}
}
public T pop() {
if (top == null) {
throw new EmptyStackException();
}
T item = top.item;
top = top.left;
// important, to not leak references.
if (top != null) {
top.right= null;
}
if (top == null) {
middle = null;
}
if (size % 2 == 0) {
middle = middle.left;
}
size--;
return item;
}
public T peek() {
if (top == null) {
throw new EmptyStackException();
}
return top.item;
}
public T getMiddle() {
if (top == null) {
throw new EmptyStackException();
}
return middle.item;
}
if (middle.left != null) {
middle.left.right = middle.right;
}
if (middle.right != null) {
middle.right.left = middle.left;
}
if (size % 2 == 0) {
// deleted middle.
middle = middle.left;
} else {
middle = middle.right;
}
if (middle == null) {
top = null;
}
size--;
}