Code:
int gtmax(cay* a,max)
           {
                if(a->gt > max) //so sánh giá trị của gốc với max
                        max=a->gt; //nếu gốc lớn hơn thì gán max = gốc
                gtmax(cay->trai,max); //duyệt sang nhánh bên trái của gốc
                gtmax(cay->phai,max); //duyệt sang nhánh bên phải của gốc
                return max;//xuất giá trị lớn nhất ra
            }
bạn khai báo max=0 ở hàm main //để khi duyệt max sẻ được giử nguyên của gốc trước.
bây giờ thì bạn đã hiểu chưa?
có gì bạn cứ hỏi nha