C++でスタックを配列で表現するコードを書いてみた!

code-2620118_640

スタックというのは、データの挿入と削除が頂上(1端)でのみ行われるデータ構造で、後入れ先出し形式(Last In First Out)をとります。これは、最後に格納した要素から先に取り出されることを意味します。

ちなみに、スタックでは挿入をプッシュ(PUSH DOWN)、削除をポップ(POP UP)と呼びます。

#include <iostream>

#define STACK_MAX 5
#define TRUE 1
#define FALSE 0

static int stack[STACK_MAX];
static int maxSize = STACK_MAX;
static int sp = -1;

void push(int d) {
stack[++sp] = d;
}

int pop() {
return stack[sp–];
}

int peek() {
return stack[sp];
}
int isFull() {
if (sp == maxSize – 1) {
return TRUE;
}
return FALSE;
}

int isEmpty(){
if (sp == -1) {
return TRUE;
}
return FALSE;
}

int main() {

int data = 10;

printf(“—push start—\n”);
while (!isFull()) {
push(data);
printf(“push data:%d\n”, peek());
data = data + 10;
}

printf(“—pop start—\n”);
while (!isEmpty()) {
printf(“pop data:%d\n”, pop());
}
}

出力は以下の通りです。確かに最後にpushしたdata50が最初にpopされる後入れ先出し方式になっていますね。

—push start—
push data:10
push data:20
push data:30
push data:40
push data:50
—pop start—
pop data:50
pop data:40
pop data:30
pop data:20
pop data:10
やさしいC++ 第5版 (「やさしい」シリーズ)
高橋 麻奈
SBクリエイティブ
2017-06-14



ご面倒おかけしますが、たまにはクリックお願いします!

にほんブログ村 海外生活ブログ 海外移住へ
にほんブログ村

にほんブログ村 海外生活ブログへ
にほんブログ村