C++栈的实现

阅读 73

2022-03-11

一。创建栈类

typedef int VAL_;
class CStock {

private:
	typedef struct Node {
		VAL_ val;
		struct Node* next;

	}Node;
	Node* Head;
	Node* Now;
	int num;
public:
	CStock()
	{
		Head = Now = nullptr;
		num = 0;
	}
	void Push(VAL_ x);//入元素
	void Pop();//出元素
	VAL_ ReT();//返回栈顶元素

	

};

二。函数实现

void CStock::Push(VAL_ x)
{
	Node* newnode = new Node;
	newnode->next = nullptr;
	newnode->val = x;
	num++;
		if (!Head)
			Head = newnode;
		else
			Now->next = newnode;
	Now = newnode;
}


void CStock::Pop()
{
	if (!num)
	{
		cout << "empty" << endl;
		return;
	}
	else
	{
		Node* p = Head;
		Head = Head->next;
		num--;
		delete p;
	}
}

VAL_ CStock::ReT()
{
	if (!num)
	{
		cout << "empty" << endl;
		return;
	}
	return Head->val;
}

精彩评论(0)

0 0 举报