Deepak Gupta
BAN USERpackage One;
public class MobilePad {
public static void main(String[] args) {
char a[][]=new char[4][3];
int c=49;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
a[i][j]=(char)c;
c++;
}
}
a[3][0]='*';
a[3][1]='0';
a[3][2]='#';
for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
int b[][]=new int[4][4];
b[i][j]=1;
String s=""+a[i][j];
getNum(a,s,5,i,j,b);
b[i][j]=0;
}
}
}
public static void getNum(char a[][],String s,int numLeft,int x,int y,int b[][])
{
if(numLeft==0)
{
System.out.println(s);
return;
}
if(x!=3)
{
for(int j=0;j<3;j++)
{
if(j!=y && b[x][j]!=1)
{
int t[][]=new int[4][3];
t=b;
t[x][j]=1;
getNum(a,s+a[x][j],numLeft-1,x,j,t);
t[x][j]=0;
}
}
}
int ver=3;
if(y==1)
{
ver=4;
}
for(int i=0;i<ver;i++)
{
if(i!=x && b[i][y]!=1)
{
int t[][]=new int[4][3];
t=b;
t[i][y]=1;
getNum(a,s+a[i][y],numLeft-1,i,y,t);
t[i][y]=0;
}
}
}
}
Postorder Successor
public static void PostorderSuccessor(BT node)
{
if(node.parent==null)
{
System.out.println("No Postorder Successor");
return;
}
if(node.parent.right==node)
{
System.out.println(node.parent.v);
return;
}
if(node.parent.right==null)
{
System.out.println(node.parent.v);
return;
}
BT temp=BT.getFirstInPostOrder(node.parent.right);
System.out.println(temp.v);
}
public static BT getFirstInPostOrder(BT node)
{
if(node.left!=null)
{
return getFirstInPostOrder(node.left);
}
if(node.right!=null)
{
return getFirstInPostOrder(node.right);
}
return node;
}
Postorder Predecessor
public static void PostorderPredecessor(BT node)
{
if(node.right!=null)
{
System.out.println(node.right.v);
return;
}
if(node.left!=null)
{
System.out.println(node.left.v);
return;
}
BT child=null;
while(node.parent!=null && (node.parent.left==null || node.parent.left==node))
{
child=node;
node=node.parent;
}
if(node.parent==null)
{
System.out.println("No Postorder Predecessor");
return;
}
else
{
System.out.println(node.parent.left.v);
return;
}
}
Inorder Successor
public static void InorderSuccessor(BT node)
{
if(node.right!=null)
{
node=node.right;
while(node.left!=null)
{
node=node.left;
}
System.out.println(node.v);
return;
}
while(node.parent!=null && node.parent.right==node)
{
node=node.parent;
}
if(node.parent!=null)
{
System.out.println(node.parent.v);
}
else
{
System.out.println("No Inorder Successor");
}
}
Inorder Predecessor
public static void InorderPredecessor(BT node)
{
if(node.left!=null)
{
node=node.left;
while(node.right!=null)
{
node=node.right;
}
System.out.println(node.v);
return;
}
while(node.parent!=null && node.parent.left==node)
{
node=node.parent;
}
if(node.parent!=null)
{
System.out.println(node.parent.v);
}
else
{
System.out.println("No Inorder Predecessor");
}
}
Preorder Successor
public static void PreorderSuccessor(BT node)
{
if(node.left!=null)
{
System.out.println(node.left.v);
return;
}
if(node.left==null && node.right!=null)
{
System.out.println(node.right.v);
return;
}
if(node.parent==null)
{
System.out.println("NO Successor");
return;
}
if(node.parent.left==node && node.parent.right!=null)
{
System.out.println(node.parent.right.v);
return;
}
BT child=node;
BT par=node.parent;
BT ps=BT.getPreSuc(child,par);
if(ps==null)
{
System.out.println("No Successor");
}
else
{
System.out.println(ps.v);
}
}
public static BT getPreSuc(BT child,BT par)
{
if(par==null)
{
return null;
}
if(par.left==child)
{
if(par.right!=null)
{
return par.right;
}
}
return getPreSuc(par,par.parent);
}
Preorder Predecessor
package One;
public class PredecessorsNSuccessors {
public static void main(String[] args) {
BT root=new BT(1);
BT l=new BT(2);
BT r=new BT(3);
BT ll=new BT(4);
BT lr=new BT(5);
BT rl=new BT(6);
BT rr=new BT(7);
root.left=l; root.right=r; l.parent=r.parent=root;
l.left=ll; l.right=lr; ll.parent=lr.parent=l;
r.left=rl; r.right=rr; rl.parent=rr.parent=r;
BT.PreorderPredecessor(rr);
}
}
class BT{
int v;
BT parent;
BT left;
BT right;
public BT(int v)
{
this.v=v;
}
public static void PreorderPredecessor(BT node)
{
if(node==null)
{
System.out.println("The node id null");
return;
}
if(node.parent==null)
{
System.out.println("No PreorderPredecessor exists");
return;
}
if(node.parent.left==node)
{
System.out.println(node.parent.v);
return;
}
if(node.parent.right==node)
{
if(node.parent.left==null)
{
System.out.println(node.parent.v);
return;
}
BT temp=BT.getLastInPreorderTraversal(node.parent.left);
System.out.println(temp.v);
}
}
public static BT getLastInPreorderTraversal(BT node)
{
BT temp;
if(node.right!=null)
{
temp=getLastInPreorderTraversal(node.right);
}
else if(node.left!=null)
{
temp=getLastInPreorderTraversal(node.left);
}
else
{
temp=node;
}
return temp;
}
}
- Deepak Gupta October 27, 2012