栈的顺序存储结构 顺序栈(Sequential Stack) C++

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baishuiniyaonulia/article/details/83118225

seqStack.h

#ifndef __SEQSTACK_H__
#define __SEQSTACK_H__

const int size = 10;

template <class T>
class seqStack
{
public:
	seqStack(void);
	virtual ~seqStack(void);
public:
	void push(T _data);
	T pop();
	T getTop();
	bool isEmpty();
private:
	T stackData[size];
	int top;
};

#endif

seqStack.cpp

#include "seqStack.h"

template <class T>
seqStack<T>::seqStack(void)
{
	top = -1;
}

template <class T>
void seqStack<T>::push(T _data)
{
	stackData[++top] = _data;
}

template <class T>
T seqStack<T>::pop()
{
	T tempData = stackData[top];
	top--;

	return tempData;
}

template <class T>
T seqStack<T>::getTop()
{
	return stackData[top];
}

template <class T>
bool seqStack<T>::isEmpty()
{
	top != -1?return 0:return 1;
}

template <class T>
seqStack<T>::~seqStack(void)
{
}

stack.cpp

#include <iostream>
#include <string>
#include "seqStack.h"
#include "seqStack.cpp"
using namespace std;

int main()
{
	seqStack<string> stack;

	stack.push("hello");
	cout << stack.pop() << endl;
	stack.push("world");
	cout << stack.getTop() << endl;

	if (stack.isEmpty())
		cout << "Not Empty" << endl;
	else
		cout << "Empty" << endl;

	return 0;
}

猜你喜欢

转载自blog.csdn.net/baishuiniyaonulia/article/details/83118225