diff --git "a/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/Family.java" "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/Family.java" new file mode 100644 index 0000000000000000000000000000000000000000..a97e9d970ee44f277677381d67395e7418d660d4 --- /dev/null +++ "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/Family.java" @@ -0,0 +1,12 @@ +public class Family{ + TV homeTV; + void buyTV(TV tv){ + homeTV=tv; +} +void remoteControl(int m){ + homeTV.setChannel(m); +} +void seeTV(){ + homeTV.showProgram(); +} +} \ No newline at end of file diff --git "a/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/MainClass.java" "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/MainClass.java" new file mode 100644 index 0000000000000000000000000000000000000000..924d0bb320b6cc2e9f1f74f8a7f5e2fbbc91e781 --- /dev/null +++ "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/MainClass.java" @@ -0,0 +1,19 @@ +public class MainClass{ + public static void main(String args[]){ + TV haierTV=new TV(); + haierTV.setChannel(int m); + m=5; +System.out.println("haierTV的频道是"+haierTV.getChannel()); +Family zhangSanFamily=new Family(); +zhangSanFamily.buyTV(TV tv); +TV=haierTV; +System.out.println("zhangSanFamily开始看电视节目"); +zhangSanFamily.seeTV(); +int m=2; +System.out.println("zhangSanFamily将电视更换到"+m+"频道"); +zhangSanFamily.remoteControl(m); +System.out.println("haierTV的频道是"+haierTV.getChannel()); +System.out.println("zhangSanFamily再看电视节目"); +zhangSanFamily.seeTV(); +} +} \ No newline at end of file diff --git "a/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/TV.java" "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/TV.java" new file mode 100644 index 0000000000000000000000000000000000000000..48b69e00da36d3ce2ac2324acadee6f951e9cf69 --- /dev/null +++ "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/TV.java" @@ -0,0 +1,27 @@ +public class TV{ +int channel; +void setChannel(int m){ + if(m>=1){ + channel=m; +} +} +int getChannel(){ +return channel; +} +void showProgram(){ +switch(channel){ + case1:System.out.println("综合频道"); + break; + case2:System.out.println("经济频道"); + break; + case3:System.out.println("文艺频道"); + break; + case4:System.out.println("国际频道"); + break; + case5:System.out.println("体育频道"); + break; + default:System.out.println("不能收看"+channel+"频道"); + +} +} +} \ No newline at end of file diff --git "a/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/User.java" "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/User.java" new file mode 100644 index 0000000000000000000000000000000000000000..24fabb6ac1a789978a74d9406746865568a71092 --- /dev/null +++ "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/User.java" @@ -0,0 +1,22 @@ +public class User{ + public static void main(String args[]){ + Vehicle car1,car2; + car1=new car1(); + car2=new car2(); + + car1.setPower(128); + car2.setPower(76); + System.out.println("car1的功率是:"+car1.getPower()); + System.out.println("car2的功率是:"+car2.getPower()); + speedUp car1=new speedUp(); + car1.speedUp(); + speedUp car2=new speedUp(); + car2.speedUp(); + System.out.println("car1目前的速度:"+car1.getSpeed()); + System.out.println("car2目前的速度:"+car2.getSpeed()); + car1.speedDown(10); + car2.speedDown(20); + System.out.println("car1目前的速度:"+car1.getSpeed()); + System.out.println("car2目前的速度:"+car2.getSpeed()); +} +} \ No newline at end of file diff --git "a/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/Vehicle.java" "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/Vehicle.java" new file mode 100644 index 0000000000000000000000000000000000000000..4e7368e1ea4d6a5efa88b42c789d2dbeb9873399 --- /dev/null +++ "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/Vehicle.java" @@ -0,0 +1,19 @@ +public class Vehicle{ + double speed; + int power; +void speedUp(int s){ +speed+=s; +} +void speedDown(int d){ +speed+=d; +} +void setPower(int p){ +power=p; +} +int getPower(){ + return power; +} +double getSpeed(){ + return speed; +} +} \ No newline at end of file diff --git "a/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/\344\270\212\346\234\272\345\256\236\350\267\2654.docx" "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/\344\270\212\346\234\272\345\256\236\350\267\2654.docx" new file mode 100644 index 0000000000000000000000000000000000000000..49d2c193aec41b6ab8df57af48ad51959a88c889 Binary files /dev/null and "b/20200340933-\346\275\230\346\230\261-\344\270\212\346\234\272\345\256\236\350\267\265/\344\270\212\346\234\272\345\256\236\350\267\2654.docx" differ diff --git "a/20200340933\346\275\230\346\230\261/.idea/.gitignore" "b/20200340933\346\275\230\346\230\261/.idea/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/.idea/.gitignore" @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git "a/20200340933\346\275\230\346\230\261/.idea/misc.xml" "b/20200340933\346\275\230\346\230\261/.idea/misc.xml" new file mode 100644 index 0000000000000000000000000000000000000000..05483570e041eb648703359441d61bf9a5feeb13 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/.idea/misc.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/.idea/modules.xml" "b/20200340933\346\275\230\346\230\261/.idea/modules.xml" new file mode 100644 index 0000000000000000000000000000000000000000..3007daed6a4d82eb6e1d037c710a00d300be5706 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/.idea/modules.xml" @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/.idea/uiDesigner.xml" "b/20200340933\346\275\230\346\230\261/.idea/uiDesigner.xml" new file mode 100644 index 0000000000000000000000000000000000000000..e96534fb27b68192f27f985d3879e173ec77adb8 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/.idea/uiDesigner.xml" @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/.gitignore" "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/.gitignore" @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/misc.xml" "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/misc.xml" new file mode 100644 index 0000000000000000000000000000000000000000..e208459b8afde5f7980720efd6bbb97f7ae24541 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/misc.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/modules.xml" "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/modules.xml" new file mode 100644 index 0000000000000000000000000000000000000000..fb006ba1738e508e249ee811282683c655a769d5 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/modules.xml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/src.iml" "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/src.iml" new file mode 100644 index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/out/production/untitled/.idea/src.iml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTree$Node.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTree$Node.class" new file mode 100644 index 0000000000000000000000000000000000000000..733a0881ef29b53cfcc8a108aa8b0109b7e16123 Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTree$Node.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTree.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTree.class" new file mode 100644 index 0000000000000000000000000000000000000000..caadfa0f47f227d33be2956d37ddc6a2fa2d0531 Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTree.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTreeText.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTreeText.class" new file mode 100644 index 0000000000000000000000000000000000000000..d2b39fbf94b0d5bfb436c07ad9f54e2301400e49 Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinarySearchTreeText.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/BinaryTree.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinaryTree.class" new file mode 100644 index 0000000000000000000000000000000000000000..b88506bfff0e958ff642916f4ac684a33dc311b9 Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/BinaryTree.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/Desktop.iml" "b/20200340933\346\275\230\346\230\261/out/production/untitled/Desktop.iml" new file mode 100644 index 0000000000000000000000000000000000000000..b107a2dd81165eaaf682ad3da030668b937fbb6c --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/out/production/untitled/Desktop.iml" @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/Main.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/Main.class" new file mode 100644 index 0000000000000000000000000000000000000000..fc1fe198f9801bbb2a25c349626b949e0191fe0e Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/Main.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/Node.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/Node.class" new file mode 100644 index 0000000000000000000000000000000000000000..5be71508ae4f8e087dde9fdd04cd0830cb7a7d5b Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/Node.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/TwoTree$BinaryNode.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/TwoTree$BinaryNode.class" new file mode 100644 index 0000000000000000000000000000000000000000..ca23b97f1b008dd67073ca98bc5d789b48d6085c Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/TwoTree$BinaryNode.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/TwoTree.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/TwoTree.class" new file mode 100644 index 0000000000000000000000000000000000000000..e4d3ead8f95cb519b82201f2e617bbc8bfc9093c Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/TwoTree.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/select$BinarySearchTree$Node.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/select$BinarySearchTree$Node.class" new file mode 100644 index 0000000000000000000000000000000000000000..e1df75303a2fa62948e854b2ca4a5438a605225b Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/select$BinarySearchTree$Node.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/select$BinarySearchTree.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/select$BinarySearchTree.class" new file mode 100644 index 0000000000000000000000000000000000000000..089d3ba3c1dcb23b6fa7925d6b96b5d796c34505 Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/select$BinarySearchTree.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/select.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/select.class" new file mode 100644 index 0000000000000000000000000000000000000000..51f261041ec2625094e0dbeff004d76e74c2971b Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/select.class" differ diff --git "a/20200340933\346\275\230\346\230\261/out/production/untitled/w2.class" "b/20200340933\346\275\230\346\230\261/out/production/untitled/w2.class" new file mode 100644 index 0000000000000000000000000000000000000000..d97b2915400c2fead274dd2b4ede5115d8cd3f7a Binary files /dev/null and "b/20200340933\346\275\230\346\230\261/out/production/untitled/w2.class" differ diff --git "a/20200340933\346\275\230\346\230\261/src/.idea/.gitignore" "b/20200340933\346\275\230\346\230\261/src/.idea/.gitignore" new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/.idea/.gitignore" @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git "a/20200340933\346\275\230\346\230\261/src/.idea/misc.xml" "b/20200340933\346\275\230\346\230\261/src/.idea/misc.xml" new file mode 100644 index 0000000000000000000000000000000000000000..e208459b8afde5f7980720efd6bbb97f7ae24541 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/.idea/misc.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/.idea/modules.xml" "b/20200340933\346\275\230\346\230\261/src/.idea/modules.xml" new file mode 100644 index 0000000000000000000000000000000000000000..fb006ba1738e508e249ee811282683c655a769d5 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/.idea/modules.xml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/.idea/src.iml" "b/20200340933\346\275\230\346\230\261/src/.idea/src.iml" new file mode 100644 index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/.idea/src.iml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/BinarySearchTree.java" "b/20200340933\346\275\230\346\230\261/src/BinarySearchTree.java" new file mode 100644 index 0000000000000000000000000000000000000000..448bc3971cc18b9e8b2e6e613e2cd62dc54cab72 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/BinarySearchTree.java" @@ -0,0 +1,128 @@ +public class BinarySearchTree { + static class Node { + public int val; + public Node left; + public Node right; + + public Node(int val) { + this.val = val; + } + } + Node root = null; + public void put(int val) { + Node node = new Node(val); + //绗竴娆℃彃鍏ワ紝root == null + if(root == null) { + root = node; + return; + } + //涓嶆槸绗竴娆℃彃鍏 root != null + Node pre = null;//鐢ㄦ潵鎸囧悜cur鐨勭埗浜茶妭鐐 + Node cur = root; + while (cur != null) { + //鍘诲彸杈规壘 + if (cur.val < val) { + pre = cur;//璁板綍涓嬫鏃禼ur + cur = pre.right;//cur鍚戝彸鑺傜偣绉诲姩 + }else if (cur.val > val) {//璇ュ幓宸﹁竟鎵 + pre = cur; + cur = pre.left; + }else {//宸茬粡鏈夌浉绛夌殑鍊硷紝鍒欎笉鍋氫换浣曞鐞嗭紝鐩存帴閫鍑 + return; + } + } + //姝ゆ椂cur = null锛宲re = cur鐨勬牴鑺傜偣 + //鍒ゆ柇褰撳墠val鍜宲re鐨剉al澶у皬锛屽喅瀹氭彃鍏ュ乏杈硅繕鏄彸杈 + if (pre.val < val) {//鎻掑叆鍒板彸鑺傜偣 + pre.right = node; + }else {//鎻掑叆鍒板乏鑺傜偣 + pre.left = node; + } + } + public Node get(int val) { + Node cur = root; + while (cur != null) { + //鎵惧埌璇ヨ妭鐐 + if (cur.val == val) { + return cur; + }else if (cur.val < val) {//鍘诲彸杈规壘 + cur = cur.right; + }else {//鍘诲乏杈规壘 + cur = cur.left; + } + } + //璇存槑娌℃壘鍒 + return null; + } + //鍒犻櫎 + public boolean remove(int val) { + Node cur = root;//褰撳墠缁撶偣 + Node pre = null;//褰撳墠鑺傜偣鐨勬牴鑺傜偣 + //鍏堟壘鍒拌鍒犻櫎鐨勮妭鐐 + while (cur != null) { + if (cur.val == val) { + break; + }else if (cur.val < val) { + pre = cur; + cur = pre.right; + }else { + pre = cur; + cur = pre.left; + } + } + //鍒ゆ柇鏄惁鎵惧埌 + //cur涓簄ull锛岃鏄庢病鏈夋壘鍒 + if (cur == null) return false; + //璇存槑鎵惧埌浜哻ur锛屽紑濮嬪垽鏂璫ur鐨勪綅缃 + if (cur.left == null) { + if (cur == root) {//鏄牴鑺傜偣 + root = cur.right;//鏇挎崲 + }else {//涓嶆槸鏍硅妭鐐 + if (cur == pre.left) { + pre.left = cur.right; + }else { + pre.right = cur.right; + } + } + }else if (cur.right == null) { + if (cur == root) { + root = cur.left; + }else { + if (cur == pre.left) { + pre.left = cur.left; + }else { + pre.right = cur.left; + } + } + }else {//cur鐨勫乏鍙宠妭鐐归兘涓嶄负null + Node minPre = cur;//鎸囧悜cur涓嬩竴鑺傜偣鐨勬牴鑺傜偣 + Node minCur = cur.right;//cur鐨勪笅涓涓妭鐐 + while (minCur.left != null) { + minPre = minCur; + minCur = minPre.left; + } + cur.val = minCur.val;//鍏堣鐩栨帀鍘熸潵鑺傜偣 + //鍒ゆ柇涓嬩竴鑺傜偣鍦ㄦ牴鑺傜偣鐨勫摢涓杈 + if (minCur == minPre.left) { + minPre.left = minCur.right;//鍐嶈鐩栨帀鍘熸潵鐨勪笅涓鑺傜偣 + }else { + minPre.right = minCur.right; + } + } + return true; + } + //涓簭閬嶅巻 + public void inOrder(Node root) { + if (root == null) return; + inOrder(root.left); + System.out.print(root.val + " "); + inOrder(root.right); + } + //鍓嶅簭閬嶅巻 + public void preOrder(Node root) { + if (root == null) return; + System.out.print(root.val + " "); + preOrder(root.left); + preOrder(root.right); + } +} \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/BinarySearchTreeText.java" "b/20200340933\346\275\230\346\230\261/src/BinarySearchTreeText.java" new file mode 100644 index 0000000000000000000000000000000000000000..37f0eefea86a465e411a1a57d3b941756e5b3c99 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/BinarySearchTreeText.java" @@ -0,0 +1,22 @@ + +public class BinarySearchTreeText { + public static void main(String[] args) { + int[] arr = {7,5,45,9,26,41,2,6}; + BinarySearchTree binarySearchTree = new BinarySearchTree(); + for (int i = 0; i < arr.length; i++) { + binarySearchTree.put(arr[i]); + } + binarySearchTree.inOrder(binarySearchTree.root); + System.out.println(); + binarySearchTree.preOrder(binarySearchTree.root); + System.out.println(); + try { + System.out.println(binarySearchTree.get(45).val); + }catch (NullPointerException e) { + e.printStackTrace(); + System.out.println("没懈媒诘"); + } + System.out.println(binarySearchTree.remove(45)); + binarySearchTree.inOrder(binarySearchTree.root); + } +} diff --git "a/20200340933\346\275\230\346\230\261/src/BinaryTree.java" "b/20200340933\346\275\230\346\230\261/src/BinaryTree.java" new file mode 100644 index 0000000000000000000000000000000000000000..855a5b7d39875f7cc1dfdfa7ea3c9b246829ab88 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/BinaryTree.java" @@ -0,0 +1,135 @@ +import java.util.Queue; +import java.util.LinkedList; + +public class BinaryTree { + public Node root; + + public BinaryTree(){ + root = null; + } + + void insert(T val){} + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + public void preOrder(){ + preOrderTraversal(root); + } + + private void preOrderTraversal(Node root){ + if(root != null) { + // root.value // 10 鎵撳嵃鑷韩 + System.out.print(root.value); + System.out.print(" "); + + // 鎵撳嵃10宸﹀瓙鏍 + preOrderTraversal(root.left); + // root.left.value // 5 + // root.left.left.value // 3 + // root.left.right.value // 7 + + // 鎵撳嵃鍙冲瓙鏍 + preOrderTraversal(root.right); + // root.right.value // 15 + // root.right.left.value // 12 + // root.right.right.value // 20 + } + } + public void inOrder(){ inOrderTraversal(root); } + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 3 5 7 10 12 15 20 + */ + private void inOrderTraversal(Node root){ + if(root != null) { + + + // 鎵撳嵃10宸﹀瓙鏍 + inOrderTraversal(root.left); + // root.left.left.value // 3 + // root.left.value // 5 + // root.left.right.value // 7 + + // root.value // 10 鎵撳嵃鑷韩 + System.out.print(root.value); + System.out.print(" "); + + // 鎵撳嵃鍙冲瓙鏍 + inOrderTraversal(root.right); + // root.right.left.value // 12 + // root.right.value // 15 + // root.right.right.value // 20 + } + } + public void postOrder(){postOrderTraversal(root);} + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 3 7 5 12 20 15 10 + */ + + private void postOrderTraversal(Node root){ + if(root != null) { + + + // 鎵撳嵃10宸﹀瓙鏍 + postOrderTraversal(root.left); + // root.left.left.value // 3 + // root.left.right.value // 7 + // root.left.value // 5 + + + + // 鎵撳嵃鍙冲瓙鏍 + postOrderTraversal(root.right); + // root.right.left.value // 12 + // root.right.right.value // 20 + // root.right.value // 15 + + // root.value // 10 鎵撳嵃鑷韩 + System.out.print(root.value); + System.out.print(" "); + } + } + public void level(){ + levelTraversal(root); //root鎸囧悜10 + } + + //灞傛閬嶅巻 + /* + * 1.鎶婃牴鏀惧埌闃熷垪涓紝 + * 2.寰幆鐩村埌闃熷垪涓虹┖ + * 3.鎶婇槦棣栫粨鐐瑰彇鍑 + * 4.鎶婇槦棣栫粨鐐圭殑宸﹀彸瀛╁瓙鍙栧嚭锛堟病鏈夊緱璇濓紝涓嶆彃鍏ワ級 + */ + public static void levelTraversal(Node root){ + if(root==null){ + return; + } + + Queue queue=new LinkedList<>(); + queue.add(root); + + while(!queue.isEmpty()){ + Node front=queue.remove(); + System.out.print(front.value+" "); + + if(front.left!=null){ + queue.add(front.left); + } + if(front.right!=null){ + queue.add(front.right); + } + } + + } +} \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/Desktop.iml" "b/20200340933\346\275\230\346\230\261/src/Desktop.iml" new file mode 100644 index 0000000000000000000000000000000000000000..b107a2dd81165eaaf682ad3da030668b937fbb6c --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/Desktop.iml" @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/Main.java" "b/20200340933\346\275\230\346\230\261/src/Main.java" new file mode 100644 index 0000000000000000000000000000000000000000..5553e47f2b5cc8376124695bb22c5b0c7cd0c8cd --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/Main.java" @@ -0,0 +1,39 @@ +class Main { + public static void main(String[] args){ + BinaryTree bt = new BinaryTree(); + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + bt.root = new Node(10); + Node left1 = new Node(5); + bt.root.left = left1; + Node right1 = new Node(15); + bt.root.right = right1; + + Node left21 = new Node(3); + left1.left = left21; + Node left22 = new Node(7); + left1.right = left22; + + Node left23 = new Node(12); + Node left24 = new Node(20); + right1.left = left23; + right1.right = left24; + + System.out.print("鍏堝簭閬嶅巻锛"); + bt.preOrder(); + System.out.println(); + System.out.print("涓簭閬嶅巻锛"); + bt.inOrder(); + System.out.println(); + System.out.print("鍚庡簭閬嶅巻锛"); + bt.postOrder(); + System.out.println(); + System.out.print("灞傚簭閬嶅巻锛"); + bt.level(); + System.out.println(); + } +} \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/Node.java" "b/20200340933\346\275\230\346\230\261/src/Node.java" new file mode 100644 index 0000000000000000000000000000000000000000..f9f9f3a8e43debb77478a87a621f903f58a3c91f --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/Node.java" @@ -0,0 +1,11 @@ +public class Node { + public T value; + public Node left; + public Node right; + + Node(T val){ + value = val; + left = null; + right = null; + } +} \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/src/TwoTree.java" "b/20200340933\346\275\230\346\230\261/src/TwoTree.java" new file mode 100644 index 0000000000000000000000000000000000000000..b2d72b1e2d4fd8ab371328e766309d658477d65e --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/TwoTree.java" @@ -0,0 +1,24 @@ +public class TwoTree { + static class BinaryNode + { + T data; + BinaryNode left; + BinaryNode right; + public BinaryNode(T data) { + this(data,null,null); + } + public BinaryNode( T data, BinaryNode left, BinaryNode right) { + this.data =data; + this.left = left; + this.right =right; + } + public BinaryNode() + { + data =null; + this.left = left; + this.right =right; + } + } + + +} diff --git "a/20200340933\346\275\230\346\230\261/src/select.java" "b/20200340933\346\275\230\346\230\261/src/select.java" new file mode 100644 index 0000000000000000000000000000000000000000..e23532e34a5b74a75af057a7d5ef75dcb78849ab --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/select.java" @@ -0,0 +1,133 @@ +public class select { + + public class BinarySearchTree { + class Node { + public int val; + public Node left; + public Node right; + + public Node(int val) { + this.val = val; + } + } + Node root = null; + public void put(int val) { + Node node = new Node(val); + //绗竴娆℃彃鍏ワ紝root == null + if(root == null) { + root = node; + return; + } + //涓嶆槸绗竴娆℃彃鍏 root != null + Node pre = null;//鐢ㄦ潵鎸囧悜cur鐨勭埗浜茶妭鐐 + Node cur = root; + while (cur != null) { + //鍘诲彸杈规壘 + if (cur.val < val) { + pre = cur;//璁板綍涓嬫鏃禼ur + cur = pre.right;//cur鍚戝彸鑺傜偣绉诲姩 + }else if (cur.val > val) {//璇ュ幓宸﹁竟鎵 + pre = cur; + cur = pre.left; + }else {//宸茬粡鏈夌浉绛夌殑鍊硷紝鍒欎笉鍋氫换浣曞鐞嗭紝鐩存帴閫鍑 + return; + } + } + //姝ゆ椂cur = null锛宲re = cur鐨勬牴鑺傜偣 + //鍒ゆ柇褰撳墠val鍜宲re鐨剉al澶у皬锛屽喅瀹氭彃鍏ュ乏杈硅繕鏄彸杈 + if (pre.val < val) {//鎻掑叆鍒板彸鑺傜偣 + pre.right = node; + }else {//鎻掑叆鍒板乏鑺傜偣 + pre.left = node; + } + } + public Node get(int val) { + Node cur = root; + while (cur != null) { + //鎵惧埌璇ヨ妭鐐 + if (cur.val == val) { + return cur; + }else if (cur.val < val) {//鍘诲彸杈规壘 + cur = cur.right; + }else {//鍘诲乏杈规壘 + cur = cur.left; + } + } + //璇存槑娌℃壘鍒 + return null; + } + //鍒犻櫎 + public boolean remove(int val) { + Node cur = root;//褰撳墠缁撶偣 + Node pre = null;//褰撳墠鑺傜偣鐨勬牴鑺傜偣 + //鍏堟壘鍒拌鍒犻櫎鐨勮妭鐐 + while (cur != null) { + if (cur.val == val) { + break; + }else if (cur.val < val) { + pre = cur; + cur = pre.right; + }else { + pre = cur; + cur = pre.left; + } + } + //鍒ゆ柇鏄惁鎵惧埌 + //cur涓簄ull锛岃鏄庢病鏈夋壘鍒 + if (cur == null) return false; + //璇存槑鎵惧埌浜哻ur锛屽紑濮嬪垽鏂璫ur鐨勪綅缃 + if (cur.left == null) { + if (cur == root) {//鏄牴鑺傜偣 + root = cur.right;//鏇挎崲 + }else {//涓嶆槸鏍硅妭鐐 + if (cur == pre.left) { + pre.left = cur.right; + }else { + pre.right = cur.right; + } + } + }else if (cur.right == null) { + if (cur == root) { + root = cur.left; + }else { + if (cur == pre.left) { + pre.left = cur.left; + }else { + pre.right = cur.left; + } + } + }else {//cur鐨勫乏鍙宠妭鐐归兘涓嶄负null + Node minPre = cur;//鎸囧悜cur涓嬩竴鑺傜偣鐨勬牴鑺傜偣 + Node minCur = cur.right;//cur鐨勪笅涓涓妭鐐 + while (minCur.left != null) { + minPre = minCur; + minCur = minPre.left; + } + cur.val = minCur.val;//鍏堣鐩栨帀鍘熸潵鑺傜偣 + //鍒ゆ柇涓嬩竴鑺傜偣鍦ㄦ牴鑺傜偣鐨勫摢涓杈 + if (minCur == minPre.left) { + minPre.left = minCur.right;//鍐嶈鐩栨帀鍘熸潵鐨勪笅涓鑺傜偣 + }else { + minPre.right = minCur.right; + } + } + return true; + } + //涓簭閬嶅巻 + public void inOrder(Node root) { + if (root == null) return; + inOrder(root.left); + System.out.print(root.val + " "); + inOrder(root.right); + } + //鍓嶅簭閬嶅巻 + public void preOrder(Node root) { + if (root == null) return; + System.out.print(root.val + " "); + preOrder(root.left); + preOrder(root.right); + } + } + + +} diff --git "a/20200340933\346\275\230\346\230\261/src/w2.java" "b/20200340933\346\275\230\346\230\261/src/w2.java" new file mode 100644 index 0000000000000000000000000000000000000000..297a52127fb3af9c17dcc9181303c05956e394be --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/src/w2.java" @@ -0,0 +1,54 @@ +import java.util.Queue; +import java.util.LinkedList; + +public class w2 { + public Node root; + + w2(){ + root = null; + } + + void insert(T val){} + + /* + * 10 + * 5 15 + * 3 7 12 20 + * preOrder: 10 5 3 7 15 12 20 + */ + public void preOrder(){ + preOrderTraversal(root); + } + + private void preOrderTraversal() { + } + + private void preOrderTraversal(Node tree){ + if(tree != null) { + + // 锟斤拷印10锟斤拷锟斤拷锟斤拷 + preOrderTraversal(tree.left); + // root.left.value // 5 + // root.left.left.value // 3 + // root.left.right.value // 7 + + + // root.value // 10 锟斤拷印锟斤拷锟斤拷 + System.out.print(tree.value); + System.out.print(" "); + + + + // 锟斤拷印锟斤拷锟斤拷锟斤拷 + preOrderTraversal(tree.right); + // root.right.value // 15 + // root.right.left.value // 12 + // root.right.right.value // 20 + } + } + + + public void inOrder(){} + public void postOrder(){} + public void level(){} +} \ No newline at end of file diff --git "a/20200340933\346\275\230\346\230\261/untitled.iml" "b/20200340933\346\275\230\346\230\261/untitled.iml" new file mode 100644 index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688 --- /dev/null +++ "b/20200340933\346\275\230\346\230\261/untitled.iml" @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file