import java.util.*;
import java.lang.*;
import java.io.*;
class Main {
static class Node {
Node left, right;
int value;
Node(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
public static Node insert(Node node, int value) {
if (node == null) {
return new Node(value);
}
if(node.value > value) {
node.left = insert(node.left, value);
}
if(node.value < value) {
node.right = insert(node.right, value);
}
return node;
}
public static Node erase(Node node, int value) {
if (node == null) return null;
if (value < node.value) {
node.left = erase(node.left, value);
} else if (value > node.value) {
node.right = erase(node.right, value);
} else {
if (node.left == null) return node.right;
if (node.right == null) return node.left;
node.value = minValue(node.right);
node.right = erase(node.right, node.value);
}
return node;
}
private static int minValue(Node node) {
int minV = node.value;
while (node.left != null) {
minV = node.left.value;
node = node.left;
}
return minV;
}
static void preOrder(Node node){
if (node == null) return;
System.out.println(node.value);
preOrder(node.left);
preOrder(node.right);
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
Node root = null;
for (int i=0; i<N; i++) {
int a = Integer.parseInt(st.nextToken());
root = insert(root, a);
}
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for (int j=0; j<M; j++) {
int t = Integer.parseInt(st.nextToken());
root = erase(root, t);
}
preOrder(root);
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: