Skip to content

Commit 5e8aea3

Browse files
committed
Edited Tree
1 parent 43886bb commit 5e8aea3

File tree

4 files changed

+69
-21
lines changed

4 files changed

+69
-21
lines changed

binaryTree/src/Traversal.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/**
2+
* Created by D'codex on January 2017.
3+
*/
4+
public class Traversal {
5+
Tree in;
6+
Traversal(Tree inp){
7+
in=inp;
8+
{
9+
int t = 0;
10+
node temp = in.duplicate0[0];
11+
while (t < in.count) {
12+
if (temp.hasLeft) {
13+
temp = in.duplicate0[Integer.parseInt(temp.leftNodeID)];
14+
}
15+
else {
16+
if(!temp.hasLeft&&temp.hasRight) {
17+
in.Traversal = in.Traversal + " " + temp.Data;
18+
t = t + 1;
19+
in.duplicate0[Integer.parseInt(temp.fetchID())].TraversalStatus=true;
20+
in.duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
21+
in.duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
22+
temp = in.duplicate0[Integer.parseInt(temp.rightNodeID)];
23+
}
24+
else if(!in.duplicate0[Integer.parseInt(temp.fetchRoot())].hasRight){
25+
temp = in.duplicate0[Integer.parseInt(temp.parentID)];
26+
}
27+
else if(!temp.hasLeft&&!temp.hasRight){
28+
in.Traversal = in.Traversal + " " + temp.Data;
29+
t = t + 1;
30+
in.duplicate0[Integer.parseInt(temp.fetchID())].TraversalStatus=true;
31+
in.duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
32+
//temp=binaryTree[Integer.parseInt(temp.parentID)];
33+
int i0=0;
34+
while(in.duplicate0[Integer.parseInt(temp.fetchID())].TraversalStatus) {
35+
temp = in.duplicate0[Integer.parseInt(temp.parentID)];
36+
i0++;
37+
if(i0>=5)
38+
break;
39+
}
40+
}
41+
}
42+
}
43+
}
44+
System.out.println(in.Traversal);
45+
}
46+
}

binaryTree/src/Tree.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,23 @@
66
public class Tree {
77
node binaryTree[],duplicate0[],duplicate1[],duplicate2[];
88
int count;int rootID,height,depth;
9-
String siblingPairs,leaves,Traversal,TraversalPre,TraversalPost;
9+
String siblingPairs,leaves,Traversal;
1010
Tree(int count0){
1111
binaryTree =new node[count0];
1212
duplicate0=new node[count0];
13-
duplicate1=new node[count0];
14-
duplicate2=new node[count0];
1513
for(int i=0;i<count0;i++){
1614
binaryTree[i]=new node();
1715
duplicate0[i]=new node();
18-
duplicate1[i]=new node();
19-
duplicate2[i]=new node();
2016
}
2117
count=count0;
2218
rootID=0;
2319
height=0;depth=0;
24-
leaves="";siblingPairs="";Traversal="";TraversalPre="";
20+
leaves="";siblingPairs="";Traversal="";
21+
}
22+
public Tree copy(Tree copy){
23+
Tree new0=new Tree(copy.count);
24+
new0.binaryTree=copy.binaryTree;
25+
return new0;
2526
}
2627
void finalise(){
2728
for(int i=0;i<count;i++){
@@ -52,15 +53,15 @@ void finalise(){
5253
node temp = duplicate0[0];
5354
while (t < count) {
5455
if (temp.hasLeft) {
55-
temp = duplicate0[Integer.parseInt(temp.leftNodeID)];
56+
temp = duplicate0[Integer.parseInt(temp.leftNodeID)];
5657
}
5758
else {
5859
if(!temp.hasLeft&&temp.hasRight) {
5960
Traversal = Traversal + " " + temp.Data;
6061
t = t + 1;
6162
duplicate0[Integer.parseInt(temp.fetchID())].TraversalStatus=true;
62-
duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
63-
duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
63+
duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
64+
duplicate0[Integer.parseInt(temp.fetchRoot())].hasLeft = false;
6465
temp = duplicate0[Integer.parseInt(temp.rightNodeID)];
6566
}
6667
else if(!duplicate0[Integer.parseInt(temp.fetchRoot())].hasRight){
@@ -83,6 +84,5 @@ else if(!temp.hasLeft&&!temp.hasRight){
8384
}
8485
}
8586
}
86-
8787
}
8888
}

binaryTree/src/framework.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ public Tree intialize(){
3535
if(temp.equalsIgnoreCase("yes")||temp.equalsIgnoreCase("y")||temp.equalsIgnoreCase("1")){
3636
int t=Integer.valueOf(parentID);
3737
bTree.binaryTree[t].hasLeft=true;
38+
bTree.binaryTree[t].HasLeftUA=true;
3839
bTree.binaryTree[t].leftNodeID=bTree.binaryTree[i].nodeID;
3940
}
4041
else {
4142
int t=Integer.valueOf(parentID);
4243
bTree.binaryTree[t].hasRight = true;
44+
bTree.binaryTree[t].HasRightUA=true;
4345
bTree.binaryTree[t].rightNodeID=bTree.binaryTree[i].nodeID;
4446
}
4547
}
@@ -64,23 +66,22 @@ public void displayAll(Tree bTree){
6466
System.out.println("isRoot :"+bTree.binaryTree[i].isRoot);
6567
System.out.println("Data :"+bTree.binaryTree[i].Data);
6668
System.out.println("Number of Children Nodes :"+bTree.binaryTree[i].childrenNodeCount);
67-
System.out.println("hasLeft :"+bTree.binaryTree[i].hasLeft);
68-
if(bTree.binaryTree[i].hasLeft)
69+
System.out.println("hasLeft :"+bTree.binaryTree[i].HasLeftUA);
70+
if(bTree.binaryTree[i].HasLeftUA)
6971
System.out.println("LeftNodeID :"+bTree.binaryTree[i].leftNodeID);
70-
System.out.println("hasRight :"+bTree.binaryTree[i].hasRight);
71-
if(bTree.binaryTree[i].hasRight)
72+
System.out.println("hasRight :"+bTree.binaryTree[i].HasRightUA);
73+
if(bTree.binaryTree[i].HasRightUA)
7274
System.out.println("RightNodeID :"+bTree.binaryTree[i].rightNodeID);
7375
System.out.println("parentID :"+bTree.binaryTree[i].fetchRoot());
7476
System.out.println("SiblingPairs (if any) :"+bTree.binaryTree[i].fetchSiblingID());
7577
System.out.println("____________________________________________________________________________");
7678
}
7779
System.out.println("Tree Specifications");
78-
System.out.println("Total No. of Nodes :"+bTree.count);
79-
System.out.println("Height of Tree :"+bTree.height);
80-
System.out.println("Depth of Tree :"+bTree.depth);
81-
System.out.println("Leaves :"+bTree.leaves.trim());
82-
System.out.println("Sibling Pairs :"+bTree.siblingPairs.trim());
83-
System.out.println("Traversal :"+bTree.Traversal);
84-
System.out.println("Traversal Pre-Order :"+bTree.TraversalPre);
80+
System.out.println("Total No. of Nodes :"+bTree.count);
81+
System.out.println("Height of Tree :"+bTree.height);
82+
System.out.println("Depth of Tree :"+bTree.depth);
83+
System.out.println("Leaves :"+bTree.leaves.trim());
84+
System.out.println("Sibling Pairs :"+bTree.siblingPairs.trim());
85+
System.out.println("Traversal :"+bTree.Traversal);
8586
}
8687
}

binaryTree/src/node.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class node {
88
boolean isRootPrimary,isRoot,TraversalStatus;
99
String Data;
1010
String nodeID,leftNodeID,rightNodeID,parentID;
11+
boolean HasLeftUA,HasRightUA;
1112
int childrenNodeCount;
1213
node(){
1314
hasLeft=false;

0 commit comments

Comments
 (0)