본문 바로가기
2_ 바삭바삭 프로그래밍/C and C++

C++ - Stack Queue

by 준환이형님_ 2010. 12. 28.
참 속상한 일이 많네요.. 복잡한 일들이 큐와 스택처럼 차곡차곡 정리되고 빠져나갔으면 좋겠어요

#include <iostream>


using namespace std;


#define QStackLimit 5


int queueStack[QStackLimit]={0};

int top=0;


bool pop(); // 현재 상태를 하나씩 보여줌

bool s_push(int); // 스택

bool q_push(int); //


int main(void)

{

s_push(610); s_push(620); s_push(630);

s_push(650); s_push(660); s_push(640);

pop();pop();pop();pop();pop();pop();


q_push(10); q_push(20); q_push(30); q_push(40);

q_push(50); q_push(60); q_push(70); q_push(80);


pop();pop();pop();pop();pop();pop();

return 0;

}


bool s_push(int val) // 스택 쌓기

{

if(top>=QStackLimit){

cout<<"Stack full"<<endl;

return 1;

}else{

queueStack[top++]=val;

}

return 0

}


bool q_push(int val) // 큐로 밀기

{

if(top>=QStackLimit){

cout<<"Stack full"<<endl;

return 1;

}else{

// 큐전체를 뒤로 한칸씩 밀어준다

for(int i=top-1; i>-1; i--)

{

queueStack[i+1]=queueStack[i];

}

queueStack[0]=val;

top++;

}

return 0;

}


bool pop() // 현재 상태를 하나씩 보여줌

{

if(top>0){

cout<<queueStack[--top]<<endl;

}else{

cout<<"Stack empty"<<endl;

return 1;

}

return 0

}