Ben onun değeri olarak bir String
tutan bir sıralanmamış ikili ağaç (şartı, sıralanmamış olmasıdır) oluşturmanız gerekir. Benim sınıf olarak şu şekildedir: Java'da sıralanmamış bir ikili ağaç oluşturmanın en etkili yolu nedir?
public class Node {
private String desc;
private Node leftNode = null;
private Node rightNode = null;
public Node(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
public Node getLeftNode() {
return leftNode;
}
public Node getRightNode() {
return rightNode;
}
}
Sonunda (eski bilgi ile yinelenenler dahil) yeni bir açıklama sahip yeni düğüm ile
String
tanıma uyan herhangi bir düğüm yerine isterler.
Benim soru, sıralanmamış ikili ağaç oluşturulurken Node
s yerleştirilmesini işlemek için en iyi yolu nedir nedir?
setLeftNode(Node root, String desc)
ve birisi root olarak kendi seçtikleri bir
Node
ile diyebiliriz ki
setRightNode(Node root, String desc)
sahip olacaktır. Eğer zaten bir sol/sağ
Node
varsa,
Node
sola sahip olmayan bir düğüme gelene kadar aşağı doğru ilerler. Ancak bu, süper büyük yükseklikler üreterek sorunlara yol açabilir.
Bu durumda oluşturulan ilk Node
yılında, özel bir kök Node
sahip olmak ve sonra sadece amacıyla yeni Node
s inşa etmek olacağını düşündüm ikinci yolu.
Yani bir sıralanmamış ikili ağaç oluşturmak için en iyi yolu nedir? Tanım gereği
Öğelerin listesinden bir sıralanmamış ikili ağaç oluşturmanın en etkili yolu, yalnızca öğelerin listesini almak ve öğe 0'ı köke, öğe 1 ve 2'yi 0 öğesinin sol ve sağ düğümlerine, vb. sıfır çalışma ile mükemmel dengeli bir ağaç. Ama ilk etapta bu ağacın amacı nedir? Benim anlayışa göre –
@Alex düzenli bir İkili Ağacı her zaman sıralanmamıştır. –
@Alex Eğer bir 'Binary Arama Ağacı' arıyorsanız, açık bir şekilde kendi iyi tanımlanmış bir sipariş şemasına sahiptir. İkili Ağacı için, en iyi yolu yoktur, çünkü bu, gereksinimlerinize bağlı olarak, bunu nasıl yapmak istediğinize bağlıdır. –