Showing posts with label programming questions. Show all posts
Showing posts with label programming questions. Show all posts

Monday, 26 August 2013

Reverse a linked list in java


Reverse a linked list in java


//reverse linked list iteratively
import java.io.*;
class Node{
Node next = null;
int data;

public Node(int d){
data = d;
}

void appendToTail(int d){
Node end = new Node(d);
Node n = this;
while(n.next!=null){
n = n.next;

}
n.next = end;
}

void display(){
Node n = this;
while(n!=null){
System.out.println(""+n.data);
n=n.next;
}

}
Node reverse(Node head){
Node previous = null,current = head,forward;
while(current!=null){
forward = current.next;
current.next = previous;
previous = current;
current = forward;

}
return previous;
}
}
class reversell{
public static void main(String args[]){
Node mynode = new Node(10);
mynode.appendToTail(15);
mynode.appendToTail(25);
mynode.appendToTail(5);
mynode.appendToTail(35);
mynode.appendToTail(45);
mynode.appendToTail(55);
mynode.display();
   Node temp = mynode.reverse(mynode);
mynode = temp;
System.out.println("after reversing");
mynode.display();


}

}

Sunday, 25 August 2013

Append two linked list

Append two linked list in java

Merge two linked list

Combine linked lists


import java.io.*;
class Node{
Node next = null;
int data;
public Node(int d){
data = d; }
void appendToTail(int d){
Node end = new Node(d);
Node n = this;
while(n.next!=null){
n = n.next;
}
n.next = end;
} void display(){
Node n = this;
while(n!=null){
System.out.println(""+n.data);
n=n.next;
}
}
void append(Node myll,Node myll2){
while(myll.next!=null){
myll = myll.next;
}
myll.next = myll2;
}
}
class appendll{
public static void main(String args[]){
Node myll = new Node(10);
myll.appendToTail(5);
myll.appendToTail(6);
myll.appendToTail(16);
myll.appendToTail(17);
Node myll2 = new Node(14);
myll2.appendToTail(51);
myll2.appendToTail(62);
myll2.appendToTail(116);
myll2.appendToTail(137);
myll.append(myll,myll2);
myll2.display();
}
}

coin change problem in java dynamic programming

coin change problem


Given an amount "N" cents, and infinite supply of "1 cent", "2 cent" and "3 cent" coins.

 Your task is to find out
minimum coins required to make change of amount "N cents"
.......................................................................................................................................................................................................


Dynamic programming


class change{
int coin[] = new int[]{1,2,3};
void minCoin(int amount){
int n = mincoin(amount);
System.out.println(n);

}
int mincoin(int amount){
if(amount<=0)
return 0;
if(amount<=3 && amount>0)
return 1;
return minimum(mincoin(amount-1),mincoin(amount-2),mincoin(amount-3))+1;
}
int minimum(int x,int y,int z){
int min;
if(x>=y && z>=y)
return y;
else
if(x>=z)
return z;
else
return x;


}
}
class coinchange{
public static void main(String args[]){
change myobj = new change();
myobj.minCoin(11);


}
}