我有我的二叉树用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