ความสูงของต้นไม้ไบนารีคือระยะทางจากรูตโหนดไปยังโหนดชายด์ที่อยู่ห่างจากรูทมากที่สุด
ด้านล่างเป็นตัวอย่าง:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
ความสูงของต้นไม้ไบนารี: 4
ความหมายของต้นไม้ไบนารี
ต้นไม้เป็นวัตถุที่มีค่าจำนวนเต็มที่มีลายเซ็นและทั้งสองต้นไม้อื่น ๆ หรือตัวชี้ไปที่พวกเขา
โครงสร้างของโครงสร้างต้นไม้ไบนารีมีลักษณะดังนี้:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
ความท้าทาย:
อินพุต
รากของต้นไม้ไบนารี
เอาท์พุต
จำนวนที่แสดงถึงความสูงของต้นไม้ไบนารี
สมมติว่าคุณได้รับรากของต้นไม้ไบนารีเป็นอินพุตให้เขียนโปรแกรมที่สั้นที่สุดที่คำนวณความสูงของต้นไม้ไบนารีและคืนค่าความสูง โปรแกรมที่มีจำนวนไบต์น้อยที่สุด (การบัญชีช่องว่าง) จะเป็นผู้ชนะ
h
ได้ อาจดีกว่าที่จะกำหนดโครงสร้างเฉพาะที่ทำเพียงรายการเพื่อวัตถุประสงค์ในการท้าทายนี้
[root_value, left_node, right_node]
ซึ่งแต่ละรายการleft_node
และright_node
เป็นต้นไม้ไบนารีที่ยอมรับได้หรือไม่ มันจะไม่สำคัญในหลายภาษา แต่อาจจะสนุกในบางคน
a tree is an object that contains a value and either two other trees or pointers to them
บางทีอาจจะเป็นความหมายเช่น คำจำกัดความที่รวมภาษาที่ไม่มีวัตถุก็ดีเช่นกัน