堆栈数据结构 stack.h

原创 2004年10月23日 21:16:00
///////////////////////////
//    //
//   堆栈数据结构   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;
}

重要的数据结构--堆栈

先declare下,此堆栈(stack)不是内存中的stack,而是一种十分重要的数据结构,后进先出(LIFO)的数据结构。 堆栈区别于树和图,是一种顺序结构,它只能在一端进行增加元素,或者删除元素的...
  • nigel_lee_beihang
  • nigel_lee_beihang
  • 2016年11月28日 15:25
  • 418

数据结构学习之堆栈(顺序存储)

堆栈顺序存储,基于连续内存的操作。 主要关于怎么创建堆栈,出栈,入栈等等操作。...
  • xy010902100449
  • xy010902100449
  • 2015年06月19日 09:29
  • 2392

(第18讲)java数据结构的堆栈与内存区的堆栈(总结各大神的见解)

大神1 Java 把内存划分成两种:一种是栈内存,另一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变...
  • weiyastory
  • weiyastory
  • 2016年05月27日 10:58
  • 1912

(第17讲)数据结构的堆栈与内存区的堆栈(总结各大神的见解)

大神1 来了解一下 C 语言的变量是如何在内存分部的。C 语言有全局变量(Global)、本地变量(Local),静态变量(Static)、寄存器变量(Regeister)。每种变量都有不同的分配方式...
  • weiyastory
  • weiyastory
  • 2016年05月27日 10:57
  • 1613

数据结构练习:堆栈

    关于数据结构的书很多,很多时候都是使用c++ ,java ,c 或者c#等语言来说明数据结构里面的内容,很少涉及到ActionScript来模拟,不过数据结构看种的是思想而不是语言,但是对于f...
  • hero82748274
  • hero82748274
  • 2009年11月16日 22:46
  • 2329

【数据结构】关于堆栈等数据结构的问题

1 在栈基础上完成取中位数,最大最小数的操作  想到了流中位数和这个类似。 来考虑求取堆栈中中间值的方法。受求最大值、最小值方法的启发,设计出求中间值的方法。求中间值得方法需要两个...
  • brandohero
  • brandohero
  • 2014年10月13日 02:06
  • 578

【数据结构】堆栈、队列的原理及java实现

栈(stack)又名堆栈,它是一种先进后出(FILO)的线性表。其限制是仅允许在表的一端进行插入和删除运算。 队列 是一种先进先出的线性表。其限制仅在表的一端(尾端)进行插入,另一端(首端)进行删除的...
  • jianyuerensheng
  • jianyuerensheng
  • 2016年04月21日 19:21
  • 4390

python数据结构学习笔记-4-堆栈 队列

堆栈、队列
  • hjh00
  • hjh00
  • 2015年11月02日 17:19
  • 1223

堆栈、队列数据结构的特点

堆栈数据结构存储特点:先进后出,后进先出。 队列数据结构的存储特点:先进先出,后进后出。 package com.cn.linkedList;import java.util....
  • QQ1012421396
  • QQ1012421396
  • 2017年03月15日 19:50
  • 481

简单理解内存中的堆栈与数据结构中的堆栈

简单理解内存中的堆栈与数据结构中的堆栈
  • u013707249
  • u013707249
  • 2017年03月08日 15:13
  • 301
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:堆栈数据结构 stack.h
举报原因:
原因补充:

(最多只允许输入30个字)