import java.util.*;
class node {
int data;
node next;
node prev;
static void insert(node start, int data)
{
node newNode = new node();
newNode.data = data;
if(start==null) {
newNode.next=newNode.prev=null;
start = newNode;
} else {
node t = start;
while(t.next!=null)
t = t.next;
newNode.prev = t;
t.next = newNode;
newNode.next=null;
}
}
static void delete(node start, int data) {
node t = start;
try {
while(t.data!=data)
t = t.next;
t.prev.next = t.next;
t.next.prev = t.prev;
System.
out.
println("Data NOT found!"); }
}
static void traverse(node start) {
node t = start;
while(t!=null) {
t=t.next;
}
}
}
public class Main {
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in);
node start=null;
int ch=0;
while(ch!=4)
{
System.
out.
println("\n1. Insert Node"); System.
out.
println("2. Delete Node"); System.
out.
println("3. Print nodes"); System.
out.
println("4. Exit!"); System.
out.
print("Enter Your Choice: ");
ch = sc.nextInt();
switch(ch)
{
case 1: System.
out.
print("\nEnter the value of the node to insert: "); int val = sc.nextInt();
node.insert(start, val);
System.
out.
println("DEBUG : Start val: "+start.
data); break;
case 2: System.
out.
print("\nEnter the value of the node you want to delete: "); node.delete(start, sc.nextInt());
break;
case 3: node.traverse(start);
break;
case 4: System.
out.
println("\nBye!!"); break;
default: System.
out.
println("\nWrong value: Please try again!"); }
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3Mgbm9kZSB7CglpbnQgZGF0YTsKCW5vZGUgbmV4dDsKCW5vZGUgcHJldjsKICAKCXN0YXRpYyB2b2lkIGluc2VydChub2RlIHN0YXJ0LCBpbnQgZGF0YSkKCXsKICAgIAlub2RlIG5ld05vZGUgPSBuZXcgbm9kZSgpOwogICAgCW5ld05vZGUuZGF0YSA9IGRhdGE7CiAgICAKICAgIAlpZihzdGFydD09bnVsbCkgewogICAgICAJCW5ld05vZGUubmV4dD1uZXdOb2RlLnByZXY9bnVsbDsKICAgICAgCQlzdGFydCA9IG5ld05vZGU7CiAgICAJfSBlbHNlIHsKICAgIAkJbm9kZSB0ID0gc3RhcnQ7CiAgICAJCXdoaWxlKHQubmV4dCE9bnVsbCkKICAgICAgICAJdCA9IHQubmV4dDsKICAgIAkJbmV3Tm9kZS5wcmV2ID0gdDsKICAgIAkJdC5uZXh0ID0gbmV3Tm9kZTsKICAgIAkJbmV3Tm9kZS5uZXh0PW51bGw7CiAgICAJfQoJfQogIAoJc3RhdGljIHZvaWQgZGVsZXRlKG5vZGUgc3RhcnQsIGludCBkYXRhKSB7CiAgICAJbm9kZSB0ID0gc3RhcnQ7CiAgICAJdHJ5IHsKICAgIAkJd2hpbGUodC5kYXRhIT1kYXRhKQogICAgICAJCQl0ID0gdC5uZXh0OwogICAgCXQucHJldi5uZXh0ID0gdC5uZXh0OwogICAgCXQubmV4dC5wcmV2ID0gdC5wcmV2OwogICAgCX0gY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIGUpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJEYXRhIE5PVCBmb3VuZCEiKTsgICAgCiAgICAJfQoJfQogIAoJc3RhdGljIHZvaWQgdHJhdmVyc2Uobm9kZSBzdGFydCkgewogIAkJbm9kZSB0ID0gc3RhcnQ7CiAgICAJd2hpbGUodCE9bnVsbCkgewogICAgCQlTeXN0ZW0ub3V0LnByaW50bG4odC5kYXRhKTsKICAgIAkJdD10Lm5leHQ7CiAgICAJfQoJfQp9CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgCQlTY2FubmVyIHNjID0gbmV3IFNjYW5uZXIoU3lzdGVtLmluKTsKICAJCgkJbm9kZSBzdGFydD1udWxsOwogICAgCiAgICAJaW50IGNoPTA7CiAgICAJd2hpbGUoY2ghPTQpCiAgICAJewogICAgCQlTeXN0ZW0ub3V0LnByaW50bG4oIlxuMS4gSW5zZXJ0IE5vZGUiKTsKICAgIAkJU3lzdGVtLm91dC5wcmludGxuKCIyLiBEZWxldGUgTm9kZSIpOwogICAgCQlTeXN0ZW0ub3V0LnByaW50bG4oIjMuIFByaW50IG5vZGVzIik7CiAgICAJCVN5c3RlbS5vdXQucHJpbnRsbigiNC4gRXhpdCEiKTsKICAgIAkJU3lzdGVtLm91dC5wcmludCgiRW50ZXIgWW91ciBDaG9pY2U6ICIpOwogICAgICAKICAgIAkJY2ggPSBzYy5uZXh0SW50KCk7CiAgICAgIAogICAgCQlzd2l0Y2goY2gpCiAgICAJCXsKICAgICAgCQkJY2FzZSAxOglTeXN0ZW0ub3V0LnByaW50KCJcbkVudGVyIHRoZSB2YWx1ZSBvZiB0aGUgbm9kZSB0byBpbnNlcnQ6ICIpOwogICAgICAgIAkJCQlpbnQgdmFsID0gc2MubmV4dEludCgpOwogICAgICAgICAgICAgICAgCSAgIAlub2RlLmluc2VydChzdGFydCwgdmFsKTsKICAgICAgICAgICAgICAgIAkgICAJU3lzdGVtLm91dC5wcmludGxuKCJERUJVRwk6CVN0YXJ0IHZhbDogIitzdGFydC5kYXRhKTsKICAgICAgICAJCQkJYnJlYWs7CiAgICAgICAgCQljYXNlIDI6CVN5c3RlbS5vdXQucHJpbnQoIlxuRW50ZXIgdGhlIHZhbHVlIG9mIHRoZSBub2RlIHlvdSB3YW50IHRvIGRlbGV0ZTogIik7CiAgICAgICAgCQkJCW5vZGUuZGVsZXRlKHN0YXJ0LCBzYy5uZXh0SW50KCkpOwogICAgCSAgICAJCQlicmVhazsKCSAgICAgICAJCWNhc2UgMzogbm9kZS50cmF2ZXJzZShzdGFydCk7CiAgICAgICAJCQkJCWJyZWFrOwogICAgICAgCQkJY2FzZSA0OglTeXN0ZW0ub3V0LnByaW50bG4oIlxuQnllISEiKTsKICAgICAgIAkJCQkJYnJlYWs7CiAgICAgICAgCQlkZWZhdWx0OglTeXN0ZW0ub3V0LnByaW50bG4oIlxuV3JvbmcgdmFsdWU6IFBsZWFzZSB0cnkgYWdhaW4hIik7CiAgICAJCX0KICAgIAl9ICAgIAoJfSAKfQ==