• 締切済み

c言語 リストデータ構造 キュー スタック がわかりません

ポインタを用いた線形リストデータ構造を利用して,キーボードから順に入力した複数の整数値(int型)を空の「スタック」および「キュー」にそれぞれ保存し,取り出した時,出力される整数値を順に表示するプログラム. 動作確認のために入力する整数値は,年号と月の数字の部分とせよ(2008年5月なら,「2→0→0→8→0→5」の順).また,スタックとキューに保存されているデータがどのような順で出力されるかをそれぞれ表示するようにせよ.(スタックの場合は「5→0→8→0→0→2」の順で出力され,キューの場合は「2→0→0→8→0→5」の順で出力されることを表示させ確認せよ) こうのようなプログラムを作らなくてはいけないのですが、まったくわかりません。参考にでもソースを教えていただけないでしょうか? また、詳しく解説されている(初級と中級レベルそれぞれについて)サイトや書籍がありましたらそちらもお願いいたします。

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.3

リスト構造について説明しているサイトはたくさんありますが、 当方の目についたところを紹介します。 参考URLをごらんになってみてください。 ds02.html では自己参照構造体を説明しています。 同じサイトで、ds03.html ~ ds06.html というページへ行くと、 リスト構造について説明しています。 リスト構造などのデータ構造やアルゴリズムについての書籍も たくさんあります。 人によってお薦めの本は異なりますが、当方は柴田望洋氏の 「新版 C言語によるアルゴリズムとデータ構造」あたりが 入門者向けではないかと思います。

参考URL:
http://tdweb.cssa.chs.nihon-u.ac.jp/ds/ds02.html
remon2648
質問者

お礼

ありがとうございました。あとは、自分でがんばってみたと思います。 今後機会があったらよろしくお願いします。

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.2

リスト構造に関する知識はどのくらいお持ちですか? スタックは「後入れ先出し」ですので、入力データを リスト構造の先頭につなげていけばよいです。 そして、出力時にはリスト構造の先頭からたどっていきます。 そうすると、後から入力したデータほど先に取り出す、という 仕掛けを実現できます。 一方、キューは「先入れ先出し」ですので、入力データを リスト構造のおしりにつなげていけばよいです。 そして、出力時にはリスト構造の先頭からたどっていきます。 そうすると、先に入力したデータほど先に取り出す、という 仕掛けを実現できます。

remon2648
質問者

補足

回答ありがとうございます  リスト構造については最近勉強し始めたばかりなのですが、知識としては、少しかじった程度だとおもいます。 リスト構造にポインターが入っているとプログラムが何をやってるのかがわからなくなります。ポインターは、基礎的なことしかわかりません。

  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

スタックやキューは、配列でも実装できます。 配列によるスタックやキューを実装するプログラムは書けますか?

remon2648
質問者

補足

回答ありがとうございます。 参考書やwebなどで調べながらやれば時間はかかりますが、書けます。

関連するQ&A