U E D R , A S I H C RSS

Data Structure/Stack



1. Stack


  • Šคƒ(Stack) : ๋‚˜‘— ๋“ค–ด˜ฒŒ ๋จผ € ๋‚˜ฐ. ๋ฐ‘€ ๋ง‰˜€ žˆ  œ„๋งŒ ๋šซ๋ žˆ๋Š” †ตด๋  ƒฐ•˜๋ฉด ๋จ. ๋ฐ‘„ ๋„ ค๋‚ด  บผ๋‚ผˆ˜๋Š” —†๋Š” ๋…ธ๋ฆ‡ด๋‹ˆ ‘–ด๋„„•Œ๋„ œ„๋กœ, ๋บ„•Œ๋„ œ„๋กœ ๋นผ•  ธ?^^;;
  • top ฌ„ฐ๋Š” ๋งจ ๋‚˜‘— ‘–ด ๋„€ ๋…ธ๋“œ๋ฅผ ฐ€๋ฅด‚ด.
  • ๋”ฐ๋„œ ๋ฐ„ฐ€ ถ”ฐ€๋˜ฑฐ๋‚˜ ‚ญ œ๋ •Œ๋งˆ๋‹ค topฌ„ฐ€ ๋ณ€•˜  ?^^;;

1.1. ๋ฐฐ—ด๋กœ   Šคƒ

~cpp 
class Stack
{
	enum {Size=100};
private:
	int data[Size];
	int top;
	bool IsEmpty();
	bool IsFull();
public:
	Stack() { top=-1; }
	bool Push(int ndata);
	bool Pop();
	void Show();
	~Stack() {}
};

bool Stack::IsEmpty()
{
	if(top==-1)
		return true;
	return false;
}

bool Stack::IsFull()
{
	if(top==Size-1)
		return true;
	return false;
}

bool Stack::Push(int ndata)
{
	if(!IsFull())
	{
		data[++top]=ndata;
		return true;
	}
	else
	{
		cout<<"ฝ‰ ฐผ๋‹ค";
		return false;
	}
}

bool Stack::Pop()
{
	if(!IsEmpty())
	{
		top--;
		return true;
	}
	else
	{
		cout<<"๋น„—ˆ๋‹ค";
		return false;
	}
}

void Show()
{
	int temp=top;
	while(temp!=-1)
		cout<<data[temp--];
}

1.2. Linked List๋กœ ๋งŒ๋“  Stack

~cpp 
class Stack
{
private:
	struct Node
	{
		int m_nData;
		Node* m_pPrev;
	};
	Node* Head;		// •„๋ฌดฒƒ๋„ —†๋Š” —ค๋“œ ๋…ธ๋“œ •˜๋‚˜ ƒ„ฑ(š”ฒŒ žˆœผ๋ฉด —„ฒญ Žธ•จ!)
	Node* top;
	bool IsEmpty();
public:
	Stack();
	void Push(int x);
	void Pop();
	void Show();
	~Stack();
};

Stack::Stack()
{
	Head=new Node;
	Head->m_pPrev=NULL;
	top=Head;
}

void Stack::Push(int x)
{
	Node* temp=new Node;
	temp->m_nData=x;
	temp->m_pPrev=top;
	top=temp;
}

bool Stack::Pop()
{
	if(!IsEmpty())
	{
		Node* temp=top->m_pPrev;
		delete top;
		top=temp;
		return true;
	}
	else
         {
                  cout<<"๋น„—ˆ๋‹ค";
		return false;
         }
}

void Stack::Show() 
{
	Node* temp=top;
	while(!IsEmpty())
	{
		cout<<top->m_nData<<endl;
		top=top->m_pPrev;
	}
	top=temp;
}

bool Stack::IsEmpty() 
{
	if(top==Head)
		return true;
	return false;
}

Stack::~Stack()
{
	while(!IsEmpty())
	{
		Pop();
	}
	delete Head;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:05
Processing time 0.0098 sec