我認爲你說明人物優先順序的順序與你的陳述一致。無論如何,你爲什麼使用隊列來存儲非FIFO順序的東西?你正在尋找的是一個鏈表。
這是我怎麼會去思考這個...
你有兩種類型的列表,一個是一組按優先順序字符的(你知道前手訂單 - 在我們的情況下,C> G> A)。因此,首先爲每個字符開始三個列表,每個列表指向另一個數字列表。
# Initially you will have:
HEAD --> [ C: [] ] --> [ G: [] ] --> [ A: [] ] --> NULL
enqueue(C,5);
HEAD --> [ C: [5] ] --> [ G: [] ] --> [ A: [] ] --> NULL
enqueue(C,1);
HEAD --> [ C: [1, 5] ] --> [ G: [] ] --> [ A: [] ] --> NULL
enqueue(A,0);
HEAD --> [ C: [1, 5] ] --> [ G: [] ] --> [ A: [0] ] --> NULL
enqueue(G,7);
HEAD --> [ C: [1, 5] ] --> [ G: [7] ] --> [ A: [0] ] --> NULL
enqueue(A,5);
HEAD --> [ C: [1, 5] ] --> [ G: [7] ] --> [ A: [0, 5] ] --> NULL
enqueue(G,3);
HEAD --> [ C: [1, 5] ] --> [ G: [3, 7] ] --> [ A: [0, 5] ] --> NULL
您還可以實現它首先通過各種數字的排序功能:
# Unsorted list
stack -> {c,5} -> {c,1} -> {a,0} -> {g,7} -> {a,5} -> {g,3} -> NULL
# Sort by numbers
stack -> {a,0} -> {c,1} -> {g,3} -> {c,5} -> {a,5} -> {g,7} -> NULL
# sort by your specific letter order, you would need to check
# c > g > a etc
stack -> {c,1} -> {c,5} -> {g,3} -> {g,7} -> {a,0} -> {a,5} -> NULL
如何字母排名?它只有C,G和A,C
templatetypedef
C> G> A @templatetypedef – user3668199
'enqueue'是否是'n'的成員函數?還是它定義在別的地方? – templatetypedef