ページ 1 / 1
First In, First Outに直したい
Posted: 2012年6月20日(水) 00:46
by DOG
コード:
void push (int *stack, int n, int *sp)
{
if ((*sp) >= SIZE){
printf ( "Stack Error\n");
}
else {
stack[(*sp)++] = n;
}
}
push関数のstack[(*sp)++] = n;を、
「nをスタックの末尾に追加」に変えたいのですがどう書けばいいですか?
Re: First In, First Outに直したい
Posted: 2012年6月20日(水) 10:03
by softya(ソフト屋)
そうなるとスタックではなくキューとなりますので、push,pop,stackなどの用語は名前を変える必要があります。
あと管理の都合上リングバッファにしたほうが良いでしょう。
Re: First In, First Outに直したい
Posted: 2012年6月20日(水) 10:07
by non
「nをスタックの末尾に追加」という意味がわかりません。
仮にスタックが未使用だとして、SIZEが10だとしたら、
*spは0なのですよね。
で、nはどこに入れるのですか?
今のままならstack[0]ですよね。
もしかして、stack[SIZE-1]の場所でしょうか?
「追記」
ごめんなさい。タイトルを忘れてました。キューですね。
Re: First In, First Outに直したい
Posted: 2012年6月21日(木) 14:29
by DOG
解決しました!
ありがとうございました。
Re: First In, First Outに直したい
Posted: 2012年6月21日(木) 14:49
by softya(ソフト屋)
DOG さんが書きました:解決しました!
ありがとうございました。
なにがどう解決したのでしょうか?
フォーラムルールに沿って最終結果の投稿をお願いします。