/////////////stack.h////////////////// #pragma once #include <iostream> class CStack { public: CStack(void); ~CStack(void); void push(int _data); int pop();
protected: int m_Data; CStack* m_pNext; CStack* my_Point; static CStack* focus;
};
|
////////////////stack.cpp /////////////////////// #include "stack.h" CStack* CStack::focus=NULL; CStack::CStack(void) { m_pNext = this; m_Data = 0; my_Point = this; } CStack::~CStack(void) { } void CStack::push(int _data) { // 1. 메모리 할당하고 데이터 입력 CStack* pdata = new CStack; pdata->m_Data = _data;
if(focus == NULL) { focus = pdata; m_pNext = pdata; pdata->my_Point=this;
}else { pdata->my_Point = focus;
focus ->m_pNext = pdata; focus = pdata; }
} int CStack::pop() {
if(NULL == this->m_pNext) return -1; CStack temp = *focus; focus = focus->my_Point;
delete focus->m_pNext; focus->m_pNext = NULL; return temp.m_Data;
} |
//////////////main.cpp ///////////////////////// #include <iostream> #include "stack.h" #define PRINT_COUT(X) std::cout << X << std::endl; int main() { CStack st; st.push(1); st.push(2); st.push(3);
PRINT_COUT(st.pop()); PRINT_COUT(st.pop()); PRINT_COUT(st.pop()); PRINT_COUT(st.pop()); st.push(4); st.push(5);
PRINT_COUT(st.pop()); st.push(6); PRINT_COUT(st.pop()); PRINT_COUT(st.pop()); return 0; } |
C++
- C++ Stack(focus + back) 2013.12.11
- 콘솔 맵 그리기 2013.09.20
C++ Stack(focus + back)
콘솔 맵 그리기
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
#define MAPSIZEX 10
#define MAPSIZEY 10
char *tile[] = {" ","■", "□", "★","◎","◇"};
int MAP[MAPSIZEY][MAPSIZEX] = {
// 0, 1 ,2 , 3 , 4 , 5 , 6 , 7 , 8 ,9
{1, 1, 1, 1, 1, 1, 1, 1, 1 ,1}, // 0
{1, 0, 0, 1, 0, 0, 1, 1, 0 ,1}, // 1
{1, 0, 0, 1, 0, 0, 1, 0, 0 ,1}, // 2
{1, 0, 0, 1, 0, 0, 1, 0, 1 ,1}, // 3
{1, 0, 0, 1, 0, 0, 1, 0, 0 ,1}, // 4
{1, 0, 0, 0, 0, 0, 0, 0, 0 ,1}, // 5
{1, 1, 0, 0, 0, 0, 0, 0, 0 ,1}, // 6
{1, 0, 0, 1, 1, 1, 1, 0, 0 ,1}, // 7
{1, 0, 0, 0, 0, 0, 1, 0, 0 ,2}, // 8
{1, 1, 1, 1, 1, 1, 1, 1, 1 ,1} // 9
};
void Draw();
void Move();
void main()
{
Draw();
}
void Draw()
{
for(int i = 0; i<MAPSIZEY; i++){
for(int j=0; j<MAPSIZEX; j++){
cout<<tile[MAP[i][j]];
}
cout<< endl;
}
}
출처 : http://blog.naver.com/ree31206?Redirect=Log&logNo=46428192
'C++' 카테고리의 다른 글
C++ Stack(focus + back) (0) | 2013.12.11 |
---|