0
在这种情况下,我们可以使用字符优先级(如'h')还是'l'(低),并使用它来实现优先级队列?我们可以在优先队列中使用字符值吗?
struct node {
int data;
char c;
struct node *next;
};
在这种情况下,我们可以使用字符优先级(如'h')还是'l'(低),并使用它来实现优先级队列?我们可以在优先队列中使用字符值吗?
struct node {
int data;
char c;
struct node *next;
};
虽然你可以做到这一点。我假设你只是想使用有意义的名字来表示优先级而不是幻数。
你可能要考虑使用一个枚举:
enum QueuePriority
{
HIGH,
MEDUIM,
LOW
};
struct node
{
int data;
enum QueuePriority priority;
struct node *next;
};
这有没有创建一个自定义的比较函数/运营商的利益。由于只要枚举值按正确的顺序内置就会执行。
(我有他们HIGH == 0
作为在一些系统的约定,但你可以很容易地反过来)。
感谢您的信息。 – SaM 2013-02-26 16:43:37
是的。由于字符被编码为数字(因此您仍然使用数字来确定优先级,但它不一定是顺序的)。但我没有看到好处。 – StoryTeller 2013-02-26 16:32:47
是的,你可以,只需定义你自己的cmp函数(或者operator <) – lostyzd 2013-02-26 16:33:06
你能否提供一个关于如何在这种情况下实现队列的示例代码? – SaM 2013-02-26 16:36:29