在这种情况下,我们可以使用像'h'这样的字符优先级来表示低,或者使用它来实现优先级队列吗?
struct node {
int data;
char c;
struct node *next;
};
答案 0 :(得分:1)
虽然你可以做到这一点。我假设您只想使用有意义的名称作为优先级而不是幻数。
您可能需要考虑使用枚举:
enum QueuePriority
{
HIGH,
MEDUIM,
LOW
};
struct node
{
int data;
enum QueuePriority priority;
struct node *next;
};
这样做的好处是不必创建自定义比较函数/运算符。因为只要枚举值的顺序正确,内置就会这样做
(我在HIGH == 0
中使用{{1}}和某些系统中的约定,但你可以很容易地反转它。)