我有我的二叉樹用C未來結構代碼:BST:使用排序順序打印樹的另一個關鍵
struct student
{
int studentID;
char lastName[MAX_LENGTH];
char firstName[MAX_LENGTH];
float amount;
};
struct node
{
struct student* record;
struct node* left;
struct node* right;
};
記錄插入到使用studentID領域作爲重點的樹。當我按照studentID的順序打印樹時一切正常。但是我想按照lastName字段的順序打印SAME樹。
我只有一個想法:複製樹到數組,排序數組和顯示數組。
是否有其他解決方案?
您應該嘗試插入基於lastName的記錄,然後您可以按照學生的姓氏字段進行按序遍歷。 – vishram0709
排序爲指針數組(struct student *)。 – BLUEPIXY
另一種方法是創建一個額外的字段'struct node * equal;'並在那裏放置所有相等的記錄。然後,您可以簡單地創建一個額外的樹,使用'lastName'作爲您的密鑰並遍歷樹來獲取排序列表。畢竟,您可以在數據結構中使用多個密鑰。 – Devolus