質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

3回答

2217閲覧

主なデータ構造(スタック・キュー・リスト・二分木)の具体的な使い道について

mr0237

総合スコア164

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

0クリップ

投稿2019/08/18 04:26

主な定番データ構造として

  1. スタック
  2. キュー
  3. リスト
  4. 2分木

これらのデータ構造がありますが、
これらの具体的な使い道を教えてください。

例えば、3DCGとか人工知能とかのようなものです。

特に「スタック」と「キュー」は一体何に使えるのでしょうか?
スタック」や「キュー」は具体的な使い道が思いつかないのですが、一体何の用途に使えるのですか?

データ構造である「スタック」「キュー」「リスト」「2分木」の具体的な使い道を教えてください

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/08/18 04:33

今までの質問をどうにかしてから次を聞いてください。どこまでわかってるかわからない人には説明できません。 解決した質問は解決済みにし、してないものは編集してください。回答者の尋ねていることには答えてください。
退会済みユーザー

退会済みユーザー

2019/08/18 05:02

最早荒らしという認識です。
mr0237

2019/08/21 03:15

すいません。忙しくて何もできませんでした。回答のほうありがとうこざいました。
退会済みユーザー

退会済みユーザー

2019/08/21 03:19

質問はできるのに?言い訳が意味不明です。
Zuishin

2019/08/21 04:38 編集

わかってないのに適当にベストアンサーつけていったようにしか見えませんが。忙しくてできなかったことが一瞬でできる不思議。
swordone

2019/08/21 04:13

忙しい人間がなんでこんなやたらめったら太字を使った質問投稿ができるんですかね。
mr0237

2019/08/25 15:35

dyoshikawaさん >質問はできるのに?言い訳が意味不明です。 どこが言い訳なんですか?どこか意味不明ですか? Zuishinさん >わかってないのに適当にベストアンサーつけていったようにしか見えませんが。忙しくてできなかったことが一瞬でできる不思議。 どこが適当にベストアンサーつけたと思うのですか? swordoneさん >忙しい人間がなんでこんなやたらめったら太字を使った質問投稿ができるんですかね。 なんで忙しい人が太字を使った質問投稿をしてはいけないのですか?
swordone

2019/08/25 15:56

誰も太字を使ってはいけないなんて言ってないですよ。 忙しいならそんな装飾する暇もないでしょうに、という意味です。 しかもなんか無意味なほどに太字を使ってるし。
swordone

2019/08/25 16:16

あとはっきりといいますが、あなたの弁明、質問、返答、コメント、他ありとあらゆるあなたの言動が、明らかに「論理的思考のできない人間」のそれです。 特に直近のdyoshikawaさんへのコメント「どこが言い訳なんですか?」は、むしろなんでわからないのか恐ろしいレベル。「すでにしている質問への回答をチェックすることなく、何らかのリアクションをすることもないことを『忙しくて何もできなかった』と説明しているのに、太字装飾する余裕をもって新たな質問を投稿している」ことに疑問を持っていることは明白でしょう。 ここまで論理的思考が欠落している人間に、プログラミングは絶望的と言っていいと思います。
guest

回答3

0

はっきり言って、3DCGだの人工知能だのは、今のあなた程度の人間が扱える代物では無いので、一旦忘れなさい。もちろん私も扱えるつもりはありません。スタックやキューはそんなものよりもずっと基礎的(fundamental)なものです。基礎の上に土台が建ち、土台の上に製品が成り立つのです。

そもそもプログラミングというものが、コンピュータに指示を出す手段なのであり、スタックやキューなどはそのために使う、いわば定石なのです。この関係を理解されない限り、何を回答しても、どんな具体例を出しても伝わらないと思ったので書きました。

投稿2019/08/19 04:51

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mr0237

2019/08/21 03:13

なんでそう思ったんですか?
swordone

2019/08/21 14:54 編集

本気で分からないんだとしたら、人工知能を、プログラミングを、あるいは他人を舐めすぎです。
mr0237

2019/08/25 15:36

swordoneさん >本気で分からないんだとしたら、人工知能を、プログラミングを、あるいは他人を舐めすぎです。 なんで本気で分からないんだとしたら、人工知能を、プログラミングを、あるいは他人を舐めすぎているのですか?
swordone

2019/08/25 16:04

「なんでそう思ったのか?」の「そう」が、「3DCGだの人工知能だのは今のあなたが使える代物ではない」ということを指しているのなら、 スタックやキューをきちんと勉強しているのなら、スタックやキューの使い道も分かるはずですし、少なくとも「3DCGや人工知能に使える」という言葉が出てくるはずがないのです。この意味で「人工知能やプログラミングを舐めている」と書きました。 「そう」が「何を回答しても、どんな具体例を出しても伝わらないと思った」という点を指しているのであれば、あなたの質問を見返してください。特に多態性のくだりの質問。そう判断されないと思うのであればおめでたいです。この点で「他人を舐めている」と書きました。
guest

0

スタックは、例えば、数式を計算するときに使います。
あるいは、プログラミング言語の内部で、関数・メソッドを呼ぶときに使います。

キューは、入力データが多いときに待たせるような処理をするどこででも使います。例えば、ウェブ処理。
あるいは、OSがプロセスにCPUを割り当てるときにも使います。

2分木は、データの検索の時に使います。データベースの内部とか。

投稿2019/08/18 13:32

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

スタック

倉庫に物を積み上げる処理。
これをプログラムする時。

キュー

待ち行列。受付とかで、人がいっぱい並んでいる状態。
これをプログラムする時。

必要なかったら、どちらも使う必要は無いです。
過去の人たちが、困った時に、考えた方法。

あ、バローズのマシン(過去の汎用機)は、多数のレジスタじゃなくて、2本のスタックで、そのトップが、演算対象になっていたと聞く。ここでは、スタックが絶対の世界。
ついでだと、LISP(と言う言語。LISt Processer)は、リスト処理用言語。この辺、調べると、リストが何に役立つか分かるかも。(昔は、人工知能用言語と言われた?)

ここまで来たら、

2分木

トーナメント表をプログラムする時にあると便利、、って言うより、そのもの。
表形式でも実装できるので、こちらも無理して使う必要無し。

と思ったが、ちょっと違ったか? でもイメージは近い。迷路探索、構文解析にも使われた。
こっちも表形式でもOK。 (要するに代替方法はある)

何にしても、入門プログラムレベルでは意識しなくても困らないものかもしれません。

投稿2019/08/19 14:42

編集2019/08/19 15:22
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2019/08/19 16:00

二分木を表(二次元配列?)で代用はさすがに無理があると思いましたが、どういう意味でしょうか?
pepperleaf

2019/08/20 11:40

書いた後に、突っ込まれるか、と思ったら、やっぱり。 > 二分木を表(二次元配列?)で代用はさすがに無理がある はい、確かに無理があります。 しかし、昔話としては、ありました。簡単ですが、構文解析。 確か、Fortran(それも Fortran77か、それ以前)だったと思う。ご存じかと思いますが、昔(今は知らない)のFortranには、リストなんてありません。当然ながら、ポインタとか、再帰呼び出しも不可。詳細については知りませんが、よく頑張ったのではないかと思います。 まあ、高級言語も最後は機械語なんで、アセンブラなら、何でもできると言うのと大差無いですが。 という事でご容赦を。
Zuishin

2019/08/20 12:02

それ以外に方法が無い場合ということでしたか。了解しました。
swordone

2019/08/21 03:39

ヒープソートって、配列を二分木に見立てて処理する方法もありましたよね。
Zuishin

2019/08/21 04:20

ヒープのような特殊な二分木は一次元配列で実装できますね。木の高さは最小を保ち、必ず片側から間を開けず詰めるという条件があれば。
otn

2019/08/21 05:06

昔のFortranで配列を使って、インデックスをポインタとして二分木などのリスト構造を表現することはありますが、 それは二分木を表で代用しているのじゃなくて、表の上に二分木を構築しているわけです。二分木には違いない。
pepperleaf

2019/08/21 12:00

otnさん、指摘の通りです。 正確には、リスト、構造体等が無い環境で、二分木(構文ツリー)を表形式で表現するでした。インデックスで無く、多分、三角行列だと思いますが。 ただ、配列を使うにしても、構文解析を行うには、何が必要か、というところから、2分木、リストとか、必要だろうと。それがサポートされているか? 無ければ、代替手段(例えば、配列)という方向ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問