linkedstack.h

来自「实现LZW压缩及解压缩的程序」· C头文件 代码 · 共 68 行

H
68
字号

#ifndef LINKEDSTACK_H
#define LINKEDSTACK_H

#include <iostream>
#include "head.h"
using namespace std;

template <class T>
LinkedStack<T>::~LinkedStack()
{
	Node<T>* next;
	while (top)
	{
		next = top->link;
		delete top;
		top = next;
	}
}

template <class T>
void LinkedStack<T>::Push(T& x)
{
	Node<T>* p = new Node<T>;
	p->data = x;
	p->link = top;
	top = p;
}

template <class T>
void LinkedStack<T>::Pop()
{
	if (IsEmpty())
	{
		throw OutOfBounds();
	}
	Node<T>* p = top;
	top = top->link;
	delete p;
}

template <class T>
T LinkedStack<T>::Delete()
{
	if (IsEmpty())
	{
		throw OutOfBounds();
	}
	T temp = top->data;
	Node<T>* p = top;
	top = top->link;
	delete p;
	return temp;
}

template <class T>
void LinkedStack<T>::Print()
{
	Node<T>* p = top;
	while (p)
	{
		cout<<p->data<<"   ";
		p = p->link;
	}
	cout<<endl;
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?