Laboratoriya ishi-6
Download 370.81 Kb.
|
Laboratoriya ishi-6
return right.contains(item);
} public boolean isEmpty(){ return data == null; } T mostLeft(){ if (!left.isEmpty()) return left.mostLeft(); return data; } T mostRight(){ if (!right.isEmpty()) return right.mostRight(); return data; } public void remove(T item){ if (isEmpty()) return; if (data.compareTo(item) == 0){ if (left.isEmpty() && right.isEmpty()) clear(); else if (!left.isEmpty()){ T temp = left.mostRight(); remove(temp); data = temp; } else { T temp = right.mostLeft(); remove(temp); data = temp; } } else if (data.compareTo(item) > 0){ if (!left.isEmpty()) left.remove(item); } else { if (!right.isEmpty()) right.remove(item); } } public void clear(){ data = null; left = null; right = null; } public String inOrder(){ if (isEmpty()) return ""; String sl = left.inOrder(); String sr = right.inOrder(); return (sl.isEmpty() ? "" : sl+" ")+data.toString()+(sr.isEmpty() ? "" : " "+sr); } public LinkedList LinkedList if (isEmpty()) return list; LinkedList LinkedList list.addAll(leftList); list.add(data); list.addAll(rightList); return list; } public String preOrder(){ if (isEmpty()) return ""; String sl = left.preOrder(); String sr = right.preOrder(); return data.toString()+(sl.isEmpty() ? "" : " "+sl)+(sr.isEmpty() ? "" : " "+sr); } public LinkedList LinkedList if (isEmpty()) return list; LinkedList LinkedList list.add(data); list.addAll(leftList); list.addAll(rightList); return list; } public String postOrder(){ if (isEmpty()) return ""; String sl = left.postOrder(); String sr = right.postOrder(); return (sl.isEmpty() ? "" : sl+" ")+(sr.isEmpty() ? "" : sr+" ")+data.toString(); } public LinkedList LinkedList if (isEmpty()) return list; LinkedList LinkedList list.addAll(leftList); list.addAll(rightList); list.add(data); return list; } public LinkedList LinkedList if (data == null) return leaf; LinkedList LinkedList if (leftLeaf.isEmpty() && rightLeaf.isEmpty()) leaf.add(data); if (!leftLeaf.isEmpty()) leaf.addAll(leftLeaf); if (!rightLeaf.isEmpty()) leaf.addAll(rightLeaf); return leaf; } public int distanceTo(T item){ if (isEmpty()) return -1; if (data.compareTo(item) == 0) return 0; if (data.compareTo(item) > 0) { int t = left.distanceTo(item); if (t == -1) return -1; return t+1; } else { int t = right.distanceTo(item); if (t == -1) return -1; return t + 1; } } } public static void main(String[] args) { BinaryTree bt.addAll(18, 9, 4, 6, 3, 5, 7, 23, 20, 19, 22, 21, 28, 25, 26, 24); System.out.println("Binar daraxt : "+bt.inOrder()); System.out.println("19 elementigacha bo'lgan masofa = "+bt.distanceTo(19)); System.out.println("26 elementigacha bo'lgan masofa = "+bt.distanceTo(26)); System.out.println("9 elementigacha bo'lgan masofa = "+bt.distanceTo(9)); } } Xulosa: Men bu laboratoriya ishimda binar daraxt tuzilmasi bilan ishladim. Bu tuzilmada ma’lumotlar saralanib joylanadi, ya’ni ildiz elementdan chap tomondagi elementlar undan kichkina, o’ng tomondagi elementlar esa katta bo’ladi. Binar daraxt rekursiv tuzilmadir. Chunki uning ikkita maydoni, ya’ni chap va o’ng shoxlari ham binar daraxtlardir. Binar daraxtlar o’zida 3 ta maydonni saqlaydi: ma’lumot maydoni, chap va o’ng shoxlar. Binar daraxt hozirgacha hech qaysi dasturlash tili kutubxonasiga qo’shilmagan. Shuning uchun uni o’zimiz yaratishimiz kerak bo’ladi. Download 370.81 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling