本文实例为大家分享了哈夫曼树 Java 代码 , 供大家参考 , 具体内容如下
الطرد الطفرة ؛ استيراد java.util.arraydeque ؛ استيراد java.util.arraylist ؛ استيراد java.util.collections ؛ استيراد java.util.list ؛ استيراد java.util.queue ؛ عقدة الفئة <T> تنفذ قابلة للمقارنة <Node <T >> {Private T Data ؛ وزن int الخاص العقدة الخاصة <T> اليسار ؛ العقدة الخاصة <T> اليمين ؛ العقدة العامة (T Data ، int weight) {this.data = data ؛ this.weight = الوزن ؛ } public int compareto (node <t> other) {if (this.weight> other.getweight ()) {return -1 ؛ } if (this.weight <other.getweight ()) {return 1 ؛ } العودة 0 ؛ } public t getData () {return data ؛ } public void setData (t data) {this.data = data ؛ } public int getweight () {return weight ؛ } public void setweight (int weight) {this.weight = weight ؛ } العقدة العامة <T> getleft () {return left ؛ } public void setLeft (node <t> left) {this.left = left ؛ } العقدة العامة <T> getRight () {return right ؛ } public void setRight (node <t> right) {this.right = right ؛ } السلسلة العامة toString () {return "البيانات:"+this.data+"؛ الوزن:"+this.weight ؛ }} الفئة العامة huffuman <t> {static <t> node <t> إنشاء (قائمة <node <t>> nodes) {بينما (nodes.size ()> 1) {collections.sort (nodes) ؛ العقدة <T> left = noves.get (noves.size ()-1) ؛ العقدة <T> right = nodes.get (noves.size ()-2) ؛ العقدة <T> parent = new node <t> (null ، left.getweight ()+right.getweight ()) ؛ parent.setRight (يمين) ؛ parent.setleft (يسار) ؛ العقد. العقد. remove (يمين) ؛ العقد. add (الوالد) ؛ } إرجاع العقد. get (0) ؛ } static <T> list <node <T >> اتساع (عقدة <T> الجذر) {list <node <t> list = new ArrayList <node <t>> () ؛ Queue <node <t >> Queue = new ArrayDeque <node <T >> () ؛ Queue.Offer (الجذر) ؛ بينما (queue.size ()> 0) {node <t> out = queue.poll () ؛ list.add (out) ؛ if (out.getleft ()! = null) {queue.offer (out.getleft ()) ؛ } if (out.getRight ()! = null) {queue.offer (out.getRight ()) ؛ }} قائمة الإرجاع ؛ } public static void main (string [] args) {// todo todo method method list <node <string >> list = new ArrayList <node <string >> () ؛ list.add (عقدة جديدة <string> ("A" ، 7)) ؛ list.add (عقدة جديدة <string> ("B" ، 5)) ؛ list.add (عقدة جديدة <string> ("C" ، 4)) ؛ list.add (New Node <String> ("D" ، 2)) ؛ العقدة <string> root = huffuman.create (قائمة) ؛ system.out.println (huffuman.breadth (root)) ؛ // system.out.println (list) ؛ }}以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。