{"id":391,"date":"2015-12-01T18:17:41","date_gmt":"2015-12-01T15:17:41","guid":{"rendered":"http:\/\/java.mazurok.com\/?p=391"},"modified":"2016-06-29T18:12:32","modified_gmt":"2016-06-29T15:12:32","slug":"%d0%b4%d0%b2%d0%be%d0%b8%d1%87%d0%bd%d0%be%d0%b5-%d0%b4%d0%b5%d1%80%d0%b5%d0%b2%d0%be-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0","status":"publish","type":"post","link":"https:\/\/java.mazurok.com\/?p=391","title":{"rendered":"\u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430"},"content":{"rendered":"<p><strong><\/p>\n<h1>\u0417\u0430\u0434\u0430\u0447\u0430<\/h1>\n<p><\/strong><\/p>\n<p>\u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 &#171;\u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430&#187; \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u044d\u0442\u0438\u043c <a href=\"http:\/\/java.mazurok.com\/word-of-week\/bst\">\u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c<\/a>.<\/p>\n<p><strong><\/p>\n<h2>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h2>\n<p><\/strong><\/p>\n<p>\u041f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0442\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u044b.<\/p>\n<p><strong><\/p>\n<h3>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438<\/h3>\n<p><\/strong><\/p>\n<p>\u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c [latex]key[\/latex] \u0438 \u0434\u0435\u0440\u0435\u0432\u043e [latex]T[\/latex], \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0432\u0435\u0440\u0448\u0438\u043d\u0443. \u0421\u0440\u0430\u0437\u0443 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043a\u043e\u0440\u0435\u043d\u044c \u0434\u0435\u0440\u0435\u0432\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430 \u0432 \u043a\u043e\u0440\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u0432\u0434\u0440\u0443\u0433 \u0441\u043e\u0432\u043f\u0430\u043b\u043e \u0441 \u043d\u0430\u0448\u0438\u043c [latex]key[\/latex], \u0442\u043e, \u0432 \u044d\u0442\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043f\u043e\u043b\u044f \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u043d\u0430 \u043d\u043e\u0432\u044b\u0435. \u0415\u0441\u043b\u0438 \u043e\u043d\u043e \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u043b\u043e, \u0442\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u0437\u0430\u043d\u044f\u0442\u043e\u0435 \u043c\u0435\u0441\u0442\u043e, \u043a\u0443\u0434\u0430 \u0431\u044b \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0432\u0435\u0440\u0448\u0438\u043d\u0443, \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c: \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e [latex]key[\/latex] \u0431\u043e\u043b\u044c\u0448\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0440\u043d\u0435 &#8212; \u043f\u0440\u0430\u0432\u043e\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e [latex]T[\/latex], \u0438\u043d\u0430\u0447\u0435 &#8212; \u043b\u0435\u0432\u043e\u0435. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043a\u043b\u044e\u0447\u0430 \u0432 \u043a\u043e\u0440\u043d\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0448\u0438 \u043f\u0440\u043e\u0448\u043b\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0422\u0430\u043a \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u043e\u043a\u0430 \u043d\u0430\u0448 \u0432\u044b\u0431\u043e\u0440 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u0443\u0441\u0442\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0435, \u0442\u043e \u0435\u0441\u0442\u044c &#8212; \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0422\u0435\u043f\u0435\u0440\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u043f\u0440\u0438\u044e\u0442 \u043d\u0430\u0448\u0435\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u0435, \u043c\u044b \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0435 \u043d\u0430 \u044d\u0442\u043e \u043c\u0435\u0441\u0442\u043e.<\/p>\n<p><strong><\/p>\n<h3>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f<\/h3>\n<p><\/strong><\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0443, \u043d\u0430\u043c, \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0435\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0439\u0442\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u0418 \u0434\u0430, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0435 \u043e\u0434\u043d\u0438, \u0441 \u043d\u0430\u043c\u0438 \u043f\u043e\u0439\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435. \u0418\u0441\u043a\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0443\u043d\u043a\u0442\u0435. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0438 \u043a\u043b\u044e\u0447\u0430 \u0432 \u043a\u043e\u0440\u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u043b\u043e &#8212; \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u043e\u0431\u0440\u0435\u0447\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0448\u0438\u043d\u0443, \u0435\u0441\u043b\u0438 \u0436\u0435 \u043c\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u043f\u0443\u0441\u0442\u043e\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e &#8212; \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 (\u043d\u0435\u0442 \u0432\u0435\u0440\u0448\u0438\u043d\u044b &#8212; \u043d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b). \u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439.<br \/>\n\u041f\u0443\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u0435 (\u043b\u0435\u0432\u043e\u0435) \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e \u043f\u0443\u0441\u0442\u043e. \u0422\u043e\u0433\u0434\u0430 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u043f\u0440\u043e\u0441\u0442\u043e &#8212; \u043c\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b \u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b (\u0442\u0430\u043c \u0432\u0435\u0434\u044c \u0441\u0442\u043e\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c) \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u043b\u0435\u0432\u043e\u0433\u043e (\u043f\u0440\u0430\u0432\u043e\u0433\u043e) \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0430 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u044b.<br \/>\n\u0415\u0441\u043b\u0438 \u0436\u0435 \u043f\u0440\u0430\u0432\u043e\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0435 \u043f\u0443\u0441\u0442\u043e, \u043c\u044b \u0443\u0436\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0443. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0439\u0442\u0438 \u0437\u0430\u043c\u0435\u043d\u0443. \u0412 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0435 \u043c\u044b \u043d\u0430\u0439\u0434\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u0441 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0439 \u0432\u0435\u0440\u0448\u0438\u043d\u043e\u0439 (\u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u043e\u043b\u044f &#8212; \u0438\u0445 \u0442\u043e\u0436\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c). \u0417\u0430\u0434\u0430\u0447\u0430 \u0441\u0432\u0435\u043b\u0430\u0441\u044c \u043a \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0441\u043b\u0443\u0447\u0430\u044e.<\/p>\n<p><strong><\/p>\n<h3><a href=\"http:\/\/ideone.com\/GSlwc0\">\u041a\u043e\u0434<\/a><\/h3>\n<p><\/strong><\/p>\n<pre class=\"lang:java decode:true\">import java.util.*;\r\nimport java.lang.*;\r\nimport java.io.*;\r\n\r\nclass Tree &lt;Key extends Comparable&lt;Key&gt;, Value&gt; {\r\n\t\r\n\tprivate class Node {\r\n\t\tKey key;\r\n\t\tValue value;\r\n\t\tNode left, right;\r\n\t\tpublic Node (Key key, Value value) {\r\n\t\t\tthis.key = key;\r\n\t\t\tthis.value = value;\r\n\t\t\tthis.left = this.right = null;\r\n\t\t}\r\n\t}\r\n\t\r\n\tprivate Node root;\r\n\t\r\n\tpublic Key getRootKey(){\r\n\t\treturn root.key;\r\n\t}\r\n\tpublic Value getRootValue(){\r\n\t\treturn root.value;\r\n\t}\r\n\t\r\n\tprivate Node add (Node node,Key key, Value value){\r\n\t\t\/\/\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u0443\u0437\u0435\u043b (\u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f)\r\n\t\tif (node == null){\r\n\t\t\tNode newnode = new Node(key,value);\r\n\t\t\treturn newnode;\r\n\t\t}\r\n\t\tint compareResult = key.compareTo(node.key);\r\n                if(compareResult == 0) {\r\n                    node.value = value;\r\n                    return node;\r\n                }\r\n                else if(compareResult &lt; 0)\r\n                    node.left = add(node.left, key, value);\r\n                else \r\n                    node.right = add(node.right, key, value);\r\n        return node;\r\n\t}\r\n        \r\n        public Key MinKey(){\r\n           Node cur = root;\r\n           \/\/ \u0441\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u0441\u044f \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u043b\u0435\u0432\u043e\u043c\u0443 \u043b\u0438\u0441\u0442\u0443, \u043f\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 \u0434\u0435\u0440\u0435\u0432\u0430 - \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u043a\u043b\u044e\u0447 \u0442\u0430\u043c\r\n           for(; cur.left != null; cur = cur.left){}\r\n           return cur.key;\r\n        }\r\n        public Key MaxKey(){\r\n           Node cur = root;\r\n           \/\/ \u0441\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u0441\u044f \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043b\u0438\u0441\u0442\u0443, \u043f\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 \u0434\u0435\u0440\u0435\u0432\u0430 - \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u043a\u043b\u044e\u0447 \u0442\u0430\u043c\r\n           for(; cur.right != null; cur = cur.right){}\r\n           return cur.key;\r\n        }\r\n       \r\n        \/\/\u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.\r\n        private Node NodeMinKey(Node node){\r\n           Node cur = node;\r\n           for(; cur.left != null; cur = cur.left){}\r\n           return cur;\r\n        }\r\n\t\r\n\tpublic void add(Key key, Value value) {\r\n\t\troot = add(root, key, value);\r\n\t}\r\n\t\r\n        \/\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0435\u0440\u0448\u0438\u043d\u044b\r\n\tpublic void delete(Key key) {\r\n            Node cur = root;\r\n            Node prev = null;\r\n            \/\/\u0441\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u0441\u044f \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u0438\u043b\u0438 \u043d\u0435 \u0443\u0442\u043a\u043d\u0435\u043c\u0441\u044f \u0432 null\r\n            for(; true; ){\r\n                if(cur == null) return;\r\n                if(key.compareTo(cur.key) &lt; 0){\r\n                    prev = cur; cur = cur.left;\r\n                }\r\n                else if(key.compareTo(cur.key) &gt; 0){\r\n                    prev = cur;\r\n                    cur = cur.right;\r\n                }\r\n                else break;\r\n            }\r\n            \/*\r\n             * \u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c (cur) \u0438 \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043e\u043a (prev)\r\n             * \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441 \u0436\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u043e\u0440 \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432:\r\n             *      1)\u0415\u0441\u043b\u0438 \u043f\u0440\u0430\u0432\u044b\u0439 \u0441\u044b\u043d \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437\r\n             *        \u0446\u0435\u043f\u0438 prev -&gt; cur -&gt; left, \u043e\u0441\u0442\u0430\u0432\u0438\u0432 prev -&gt; left.\r\n             *      2)\u0415\u0441\u043b\u0438 \u0436\u0435 \u043f\u0440\u0430\u0432\u044b\u0439 \u0441\u044b\u043d \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0443 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \r\n             *        \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u0435\u0440\u0435\u0432\u0430 \u043c\u044b \u043d\u0430\u0439\u0434\u0435\u043c \u0443\u0437\u0435\u043b \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043b\u044e\u0447\u043e\u043c \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0435\u0432\u0435 cur,\r\n             *        \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u043a \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443 \u043b\u0435\u0432\u043e\u0433\u043e \u0441\u044b\u043d\u0430 cur \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u043c cur \u043d\u0430 \u044d\u0442\u043e\u0442 \u0443\u0437\u0435\u043b.\r\n             *\/\r\n             if(cur.right == null)\r\n                    \r\n                    if(prev == null){ \r\n                        root = root.left;\r\n                    }\r\n                    else if(cur == prev.right)\r\n                        prev.right = cur.left;\r\n                    else\r\n                        prev.left = cur.left;\r\n                \r\n                else if(cur.left == null)\r\n                    \r\n                    if(prev == null){ \r\n                        root = root.left;\r\n                    }\r\n                    else if(cur == prev.right)\r\n                            prev.right = cur.left;\r\n                    else\r\n                            prev.left = cur.left;\r\n\r\n                else{\r\n                    Node mostLeft = cur.right;\r\n                    prev = null;\r\n                    for(; mostLeft.left != null;){\r\n                        prev = mostLeft;\r\n                        mostLeft = mostLeft.left;\r\n                    }\r\n                    if(prev != null)\r\n                        prev.left = mostLeft.right;\r\n                    else\r\n                        cur.right = mostLeft.right;\r\n                    cur.key = mostLeft.key;\r\n                    cur.value = mostLeft.value;\r\n                }\r\n                \r\n\t}\r\n\t\r\n\tpublic Value get(Key key) {\r\n            Node cur = root;\r\n            for(; true; ){\r\n                if(cur == null) break;\r\n                if(key.compareTo(cur.key) &lt; 0)\r\n                    cur = cur.left;\r\n                else if(key.compareTo(cur.key) &gt; 0)\r\n                    cur = cur.right;\r\n                else break;\r\n            }\r\n            return cur != null? cur.value : (Value)null;\r\n\t}\r\n\t\r\n\tprivate void print(Node node, int level) {\r\n\t\tif (node != null) {\r\n\t\t\tprint(node.right, level+1);\r\n\t\t\tfor (int i=0; i &lt; level; i++) {\r\n\t\t\t\tSystem.out.print(\"\\t\");\r\n\t\t\t}\r\n\t\t\tSystem.out.println(node.key + \" =&gt; \" + node.value); \r\n\t\t\tprint(node.left, level + 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\tpublic void print() {\r\n\t\tprint(root, 0);\r\n\t}\r\n\r\n\r\npublic static void main (String[] args){\r\n\t\tTree&lt;Double, Double&gt; a = new Tree&lt;Double, Double&gt;();\r\n\t\tint n = 10000;\r\n\t\tfor(int i = 0; i &lt; n; i++){\r\n\t\t\ta.add( Math.round(Math.random() * 1000.0) + 1.0*i,  Math.round(Math.random() * 1000000.0) + 1.0*i);\r\n\t\t}\r\n\t\tSystem.out.println(a.MaxKey() + \" =&gt; \" + a.get(a.MaxKey()));\r\n\t\tSystem.out.println(a.MinKey() + \" =&gt; \" + a.get(a.MinKey()));\r\n                System.out.println();\r\n                System.out.println();\r\n                System.out.println();\r\n                System.out.println(\"First print\");\r\n\t\ta.print();\r\n\t\ta.delete(a.getRootKey());\r\n                System.out.println();\r\n                System.out.println();\r\n                System.out.println();\r\n                System.out.println(\"Second print\");\r\n\t\ta.print();\r\n\t}\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 &#171;\u0414\u0432\u043e\u0438\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430&#187; \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u044d\u0442\u0438\u043c \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u041f\u043e \u043c\u043e\u0435\u043c\u0443 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u043c\u0443 \u043c\u043d\u0435\u043d\u0438\u044e, \u0442\u0443\u0442 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0431\u043e\u043b\u0435\u0435 \u043b\u0438 \u043c\u0435\u043d\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u0448\u0438\u043d\u044b. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u0448\u0438\u043d\u0430 \u0441 \u043a\u043b\u044e\u0447\u043e\u043c [latex]key[\/latex] \u0438 \u0434\u0435\u0440\u0435\u0432\u043e [latex]T[\/latex], \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u0432\u0435\u0440\u0448\u0438\u043d\u0443. \u0421\u0440\u0430\u0437\u0443 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0430 &hellip; <a href=\"https:\/\/java.mazurok.com\/?p=391\" class=\"more-link\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":23,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,49],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/java.mazurok.com\/index.php?rest_route=\/wp\/v2\/posts\/391"}],"collection":[{"href":"https:\/\/java.mazurok.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/java.mazurok.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/java.mazurok.com\/index.php?rest_route=\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/java.mazurok.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=391"}],"version-history":[{"count":18,"href":"https:\/\/java.mazurok.com\/index.php?rest_route=\/wp\/v2\/posts\/391\/revisions"}],"predecessor-version":[{"id":581,"href":"https:\/\/java.mazurok.com\/index.php?rest_route=\/wp\/v2\/posts\/391\/revisions\/581"}],"wp:attachment":[{"href":"https:\/\/java.mazurok.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/java.mazurok.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/java.mazurok.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}