○stack queue

■スタック

先入後出しのデータ構造

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

struct cell{
	char str[64];
};

int main(){
	std::stack<cell> stack;
	cell a;
	strcpy(a.str,"a");stack.push(a);//値の追加
	strcpy(a.str,"b");stack.push(a);
	strcpy(a.str,"c");stack.push(a);
	strcpy(a.str,"d");stack.push(a);

	while(stack.empty()==false){//false : スタックに値がある
		a=stack.top();//最後尾の値の取得
		stack.pop();//最後尾の値の削除
		printf("%s\n",a.str);
	}
	return 0;
}

処理結果
d
c
b
a

■キュー

先入先出しのデータ構造

#include <stdio.h>
#include <queue>

struct cell{
	char str[64];
};

int main(){
	std::queue<cell> queue;
	cell a;
	strcpy(a.str,"a");queue.push(a);//値の追加
	strcpy(a.str,"b");queue.push(a);
	strcpy(a.str,"c");queue.push(a);
	strcpy(a.str,"d");queue.push(a);

	while(queue.empty()==false){//false : キューに値がある
		a=queue.front();//先頭の値の取得
		queue.pop();//先頭の値の削除
		printf("%s\n",a.str);
	}
	return 0;
}

処理結果
a
b
c
d




▲トップページ > Windows と C++