堆栈数据结构 stack.h

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

///////////////////////////

// //

// 堆栈数据结构 stack.h //

// //

//////////////////////////

#include<iostream.h>

template<class Type>class Stack;

template<class Type>

class StackNode

{

friend class Stack<Type>;

private:

Type data;

StackNode<Type> *link;

StackNode(Type D=0,StackNode<Type> *L=NULL):link(L),data(D){}

};

template<class Type>

class Stack

{

public:

Stack():top(NULL),NumItem(0){}

void Push(Type item);

Type Pop();

Type GetTop();

void MakeEmpty();

bool ISEmpty();

int GetNum();

private:

int NumItem;

StackNode<Type> *top;

};

template<class Type>

void Stack<Type>::Push(Type item)

{

top=new StackNode<Type>(item,top);

NumItem++;

}

template<class Type>

Type Stack<Type>::Pop()

{

StackNode<Type> *p;

Type temp;

temp=top->data;

p=top;

top=top->link;

delete p;

NumItem--;

return temp;

}

template<class Type>

Type Stack<Type>::GetTop()

{

return top->data;

}

template<class Type>

bool Stack<Type>::ISEmpty()

{

return top==NULL;

}

template<class Type>

void Stack<Type>::MakeEmpty()

{

delete top;

}

template<class Type>

int Stack<Type>::GetNum()

{

return NumItem;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航