我们可以在优先队列中使用字符值吗?

时间:2013-02-26 16:30:23

标签: c linked-list priority-queue

在这种情况下,我们可以使用像'h'这样的字符优先级来表示低,或者使用它来实现优先级队列吗?

struct node {
int data;
char c;
struct node *next;
};

1 个答案:

答案 0 :(得分:1)

虽然你可以做到这一点。我假设您只想使用有意义的名称作为优先级而不是幻数。

您可能需要考虑使用枚举:

enum QueuePriority 
{
  HIGH,
  MEDUIM,
  LOW
};

struct node
{
  int data;
  enum QueuePriority priority;
  struct node *next;
};

这样做的好处是不必创建自定义比较函数/运算符。因为只要枚举值的顺序正确,内置就会这样做 (我在HIGH == 0中使用{{1}}和某些系统中的约定,但你可以很容易地反转它。)