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