講義演習課題(スタック、キュー関連)

演習問題1

サイズが5のスタックおよびキューに対して,60,30,40,70,20という順番 で,データが入っていきました.

(1)スタックおよびキューの格納イメージを書きなさい

(2)それぞれでこれらを出 力すると結果はどういう順番で出てきますか?


演習問題2

サイズが5のスタックと キューに対して,60,30,40,70,20,10,90という順番で,1つずつデータがス タックおよびキューに入っていきました.最後のデータを格納したとき,スタックおよびキューにはどのようにデータが格納されていますか?上記のようなイ メージ図で表しなさい.

なお,一杯になった状態でデータが挿入された場合の挙動は,

  • スタック ・・・ 最も古いデータから削除してプッシュ
  • キュー ・・・ デキューを行ってからエンキュー

として格納スペースを1つずつ確保することとします.(本講義のオリジナルルールです)


演習問題3

線形リストの活用して,スタックとキューを実現したい.具体的に線形リストにどのような操作(追加・削除など)をすれば、スタックおよびキューになるか?操作対象がどこなのか(リストの先頭、リストの末尾)を意識して説明せよ。


演習問題4

(2)List9-2を参考にして、リストの先頭か ら順番に出力していくというアルゴリズムをフローチャートで書け。

(3)List9-2がどのような処理をしているか図で説明せよ.

(4)List9-3 を参考にしてリストの前にデータを追加していくアルゴリズムを日本語で書け。

(5)List9-3がどのような処理をしているか図で説明 せよ.



演習問題5

サイズが6のスタックおよびキューに対し て,50,30,70,40,10,80,100,90,120というデータが1ずつ入りました.

(1)スタックにおけるデータ出力はどうなりますか?
(2)キューにおけるデータ出力はどうなりますか?

なお, 一杯になったときは, データを1つずつ出力して格納スペースを確保することとします.

演習問題6

教科書のプログラ ムコードに関する次の問いの答えよ

(1-1)List9-4は末尾にデータを追加 する処理である。このフローチャートを書け

(1-2)List9-4の【III】 【IV】の各状態を図を用いて説明せよ

(2)List9-5はリストからからデー タを消す処理である。【I】【II】【II】の各状態を図を用いて説明せよ。

(3)List9-6 はリストからからデータを消す処理である。この処理のフローチャートを書け

演習問題7
下記のサンプルプログラムを講義中の指示に従い改良せよ。

stack.c 
#include<stdio.h>
#include<stdlib.h>

/*--- ノード ---*/
typedef struct _team{
char *name; //球団名 
struct _team  *next; //次の球団の位置
}Team;


Team *head; /* 先頭ノードへのポインタ */

Team *now,*new;


void main(){

//先頭のノードを追加
head = NULL;
new = calloc(1, sizeof(Team));
new->name="Fighters";
head =new;
//(1)それ以降のノードを追加する際はどうすればよいか?

//(2)pushの処理はどうなるか?

}











Comments