Skip to content

Commit b32ca24

Browse files
committed
commit
1 parent b2ed5db commit b32ca24

File tree

17 files changed

+247
-25
lines changed

17 files changed

+247
-25
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package binarytree;
2+
3+
public class BinaryTree<T extends Comparable<T>> {
4+
Node<T> root = null;
5+
6+
public class Node<T extends Comparable<T>> {
7+
Node leftChild;
8+
Node rightChild;
9+
Node parent;
10+
T key;
11+
}
12+
13+
public void print(Node node) {
14+
System.out.println(node.leftChild.key);
15+
}
16+
17+
public void delete(T key){
18+
Node newNode=new Node();
19+
newNode.key=key;
20+
Node tem=root;
21+
22+
while(newNode.key!=tem.key){
23+
if (newNode.key.compareTo(tem.key) < 0) {
24+
tem = tem.leftChild;
25+
} else {
26+
tem = tem.rightChild;
27+
}
28+
}
29+
//tem是最后和给定值相等的节点。
30+
if (tem.rightChild==null)
31+
transplant();
32+
else if tem.rightChild==null
33+
transplant();
34+
else y=treeMinimum(tem.rightChild) //右孩子中的最小值。
35+
if (y.p!=z)
36+
transplant(t,y,y.right)
37+
y.right=z.right
38+
y.right.p=y
39+
Transplant(T,z,y)
40+
y.left.p=z.left
41+
}
42+
43+
private void transplant() {
44+
// TODO Auto-generated method stub
45+
46+
}
47+
48+
public void insert(T key) { // 向二叉树中插入
49+
Node newNode = new Node();
50+
newNode.key = key;
51+
Node tem = root;
52+
Node p = null;
53+
while (tem != null) {
54+
p = tem;
55+
if (newNode.key.compareTo(tem.key) < 0) {
56+
tem = tem.leftChild;
57+
} else {
58+
tem = tem.rightChild;
59+
}
60+
}
61+
newNode.parent = p;
62+
63+
if (p == null) { //二叉树为空时。
64+
root = newNode;
65+
66+
} else if ((newNode.key).compareTo(p.key) < 0) {
67+
68+
p.leftChild = newNode;
69+
} else {
70+
p.rightChild = newNode;
71+
}
72+
}
73+
74+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package binarytree;
2+
3+
public class BinaryTree<T extends Comparable<T>> {
4+
Node<T> root = null;
5+
6+
public class Node<T extends Comparable<T>> {
7+
Node leftChild;
8+
Node rightChild;
9+
Node parent;
10+
T key;
11+
}
12+
13+
public void print(Node node) {
14+
System.out.println(node.leftChild.key);
15+
}
16+
17+
public void delete(T key){
18+
Node newNode=new Node();
19+
newNode.key=key;
20+
Node tem=root;
21+
22+
while(newNode.key!=tem.key){
23+
if (newNode.key.compareTo(tem.key) < 0) {
24+
tem = tem.leftChild;
25+
} else {
26+
tem = tem.rightChild;
27+
}
28+
}
29+
//tem是最后和给定值相等的节点。
30+
if tem.rightChild==null
31+
transplant();
32+
else if tem.rightChild==null
33+
transplant();
34+
else y=treeMinimum(tem.rightChild) //右孩子中的最小值。
35+
if (y.p!=z)
36+
transplant(t,y,y.right)
37+
y.right=z.right
38+
y.right.p=y
39+
Transplant(T,z,y)
40+
y.left.p=z.left
41+
}
42+
43+
private void transplant() {
44+
// TODO Auto-generated method stub
45+
46+
}
47+
48+
public void insert(T key) { // 向二叉树中插入
49+
Node newNode = new Node();
50+
newNode.key = key;
51+
Node tem = root;
52+
Node p = null;
53+
while (tem != null) {
54+
p = tem;
55+
if (newNode.key.compareTo(tem.key) < 0) {
56+
tem = tem.leftChild;
57+
} else {
58+
tem = tem.rightChild;
59+
}
60+
}
61+
newNode.parent = p;
62+
63+
if (p == null) { //二叉树为空时。
64+
root = newNode;
65+
66+
} else if ((newNode.key).compareTo(p.key) < 0) {
67+
68+
p.leftChild = newNode;
69+
} else {
70+
p.rightChild = newNode;
71+
}
72+
}
73+
74+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package binarytree;
2+
3+
public class BinaryTree<T extends Comparable<T>> {
4+
Node<T> root = null;
5+
6+
public class Node<T extends Comparable<T>> {
7+
Node leftChild;
8+
Node rightChild;
9+
Node parent;
10+
T key;
11+
}
12+
13+
public void print(Node node) {
14+
System.out.println(node.leftChild.key);
15+
}
16+
17+
public void delete(T key){
18+
Node newNode=new Node();
19+
newNode.key=key;
20+
Node tem=root;
21+
22+
while(newNode.key!=tem.key){
23+
if (newNode.key.compareTo(tem.key) < 0) {
24+
tem = tem.leftChild;
25+
} else {
26+
tem = tem.rightChild;
27+
}
28+
}
29+
//tem是最后和给定值相等的节点。
30+
if tem.rightChild==null
31+
transplant();
32+
else if tem.rightChild==null
33+
transplant();
34+
else y=treeMinimum(tem.rightChild) //右孩子中的最小值。
35+
if
36+
}
37+
38+
private void transplant() {
39+
// TODO Auto-generated method stub
40+
41+
}
42+
43+
public void insert(T key) { // 向二叉树中插入
44+
Node newNode = new Node();
45+
newNode.key = key;
46+
Node tem = root;
47+
Node p = null;
48+
while (tem != null) {
49+
p = tem;
50+
if (newNode.key.compareTo(tem.key) < 0) {
51+
tem = tem.leftChild;
52+
} else {
53+
tem = tem.rightChild;
54+
}
55+
}
56+
newNode.parent = p;
57+
58+
if (p == null) { //二叉树为空时。
59+
root = newNode;
60+
61+
} else if ((newNode.key).compareTo(p.key) < 0) {
62+
63+
p.leftChild = newNode;
64+
} else {
65+
p.rightChild = newNode;
66+
}
67+
}
68+
69+
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)