ページ 11

スタックによる並び替えのプログラム

Posted: 2009年11月03日(火) 09:38
by アクエリアス
スタックを用いて10 個の整数配列を5 個ずつ順序を入れ替えるプログラムを作りなさ
つまり
01234 56789

43210 98765
と並び替えるプログラムをスタックを用いて作りなさい。
よろしくお願いします。




#include <stdlib.h>
#define STACKLENGTH 100 // スタックの長さ
#define LENGTH 10 // 整数型配列の長さ(ここでは10)
int stack[STACKLENGTH]; // スタック用の配列
int stack_p = 0; // スタックポインタ
void Push(int a);
int Pop(void);
void Print(char*, int* a, int);
/* ---------------------------
* スタックを用いて整数配列を逆転する
------------------------------*/
int main(int argc, char** argv)
{
int a[LENGTH];
int ii;
/* 0 から100 までのランダム整数が入った配列をLENGTH 個、作成する*/
for (ii=0; ii<LENGTH; ii++){
a[ii] = rand()%101; // %101 は101 で割ったときに余りを表す(0-100)
}
/* 発生した乱数を表示*/
Print("入れ替え前", a, LENGTH);
/* スタックにプッシュ*/
for (ii=0; ii<LENGTH; ii++){
40
Push(a[ii]);
}
/* スタックからpop */
for (ii=0; ii<LENGTH; ii++){
a[ii] = Pop();
}
/* 入れ替えて表示*/
Print("入れ替え後", a, LENGTH);
}/
* ---------------------------
* a をスタック頂上にpush する
* input int a
--*----------------------------*/
void Push(int a)
{
// ここを作る
}/
* ---------------------------
* スタックから値を取り出す
* ouput int a;
--*----------------------------*/
int Pop()
{
// ここを作る
}/
* ---------------------------
* 整数配列をコメント付で表示する
**
input char* title; 表示コメント
* input int* a; 表示する整数配列
* input int n; 配列の長さ
------------------------------*/
void Print(char* title, int* a, int n)
{
int ii;
/* 整数配列を標準出力*/
printf("%s ", title);
for (ii=0; ii<n; ii++){
printf("%d ", a[ii]);
}
printf("\n");
}

Re:スタックによる並び替えのプログラム

Posted: 2009年11月03日(火) 09:51
by 組木紙織
コードを載せるときは規約を読んでください。

何が問題なんでしょうか?