降順でソートするときに問題があります。ソートは別のスタックの助けを借りて動作します。ここ降順でスタックを並べ替え
はソートコードです:
void* sort(stack_type* stack, stack_type* auxiliary) {
int* element = NULL;
while(!is_empty(stack)) {
element = pop(stack);
while(!is_empty(auxiliary) && head(auxiliary) > element) {
push(pop(auxiliary), stack);
}
push(element, auxiliary);
}
}
出力はこれです:
| -4 |
| -45 |
| 356 |
| 87 |
| 76 |
| 54 |
| 34 |
| 22 |
| 8 |
| 2 |
が、私はそうしたい:ここ
| 356 |
| 87 |
| 76 |
| 54 |
| 34 |
| 22 |
| 8 |
| 2 |
| -4 |
| -45 |
は完全なコードと要旨です:https://gist.github.com/avoxy/380e96a87cb3c6cc1f4a62c02fb6428d
thx guys
どのような*トラブル*? –
独自のスタックを実装していますか? (スタックを実装する最も一般的な方法である)単一リンクリストを使用する代わりに、二重リンクリストを使用し、頭と尾の両方へのポインタを保持します。次に、 "スタック"を任意の方法で繰り返すことができます。私はそれをもう "適切な"スタックと呼んでいません。 –
これはどんなソートアルゴリズムですか? –