/////////////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++' 카테고리의 다른 글

콘솔 맵 그리기  (0) 2013.09.20

#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

+ Recent posts