File tree Expand file tree Collapse file tree 17 files changed +247
-25
lines changed
org.eclipse.core.resources Expand file tree Collapse file tree 17 files changed +247
-25
lines changed Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments