博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于线性表的堆栈
阅读量:6340 次
发布时间:2019-06-22

本文共 1308 字,大约阅读时间需要 4 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#ifndef IOSTREAM
#include <iostream>
#endif
 
template
<
class 
T>
class 
Stack
{
public
:
    
Stack(
int 
MaxSize=10);
    
~Stack();
    
bool 
IsEmpty()
const
{
return 
top==0;}
    
bool 
IsFull()
const
{
return 
top==MaxTop;}
    
T Top()
const
;
    
Stack<T>&Add(
const 
T &x);
    
Stack<T>&Delete(T&x);
 
    
int 
GetStackSize()
const
;
//确定堆栈的大小
private
:
    
int 
top;
    
int 
MaxTop;
    
T *stack;
//堆栈元素数组
};
 
//构造函数
template
<
class 
T>
Stack<T>::Stack(
int 
MaxSize)
{
    
MaxTop=MaxSize-1;
    
stack=
new 
T [MaxSize];
    
top=-1;
//因为top=0的时候等于已经有一个元素了,所以这里为-1
}
//析构函数
template
<
class 
T>
Stack<T>::~Stack()
{
    
delete 
[] stack;
}
//弹出栈顶
template
<
class 
T>
T Stack<T>::Top()
const
{
    
if
(IsEmpty())
throw 
OutOfBounds();
    
else
    
return 
stack[top];
}
//压入栈
template
<
class 
T>
Stack<T>&Stack<T>::Add(
const 
T &x)
{
    
if
(IsFull())
        
throw 
NoMem();
    
top++;
    
stack[top]=x;
    
return 
*
this
;
}
 
//弹出栈
template
<
class 
T>
Stack<T>&Stack<T>::Delete(T&x)
{
    
if
((IsEmpty()))
        
throw 
OutOfBounds();
    
x=stack[top];
    
top--;
    
return 
*
this
;
}
 
//确定堆栈的大小
template
<
class 
T>
int 
Stack<T>::GetStackSize()
const
{
    
if
(IsEmpty())
        
throw 
OutOfBounds();
    
int 
len=top;
    
return 
++len;
}
出处:
作者:

转载地址:http://xheoa.baihongyu.com/

你可能感兴趣的文章
求高手,求解释
查看>>
[MSSQL]NTILE另类分页有么有?!
查看>>
winform datagridview 通过弹出小窗口来隐藏列 和冻结窗口
查看>>
Jquery闪烁提示特效
查看>>
最佳6款用于移动网站开发的 jQuery 图片滑块插件
查看>>
C++ String
查看>>
获取系统托盘图标的坐标及文本
查看>>
log4j Test
查看>>
HDU 1255 覆盖的面积(矩形面积交)
查看>>
SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。...
查看>>
第二十一章流 3用cin输入
查看>>
在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。...
查看>>
获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
查看>>
Orchard 视频资料
查看>>
简述:预处理、编译、汇编、链接
查看>>
调试网页PAIP HTML的调试与分析工具
查看>>
路径工程OpenCV依赖文件路径自动添加方法
查看>>
玩转SSRS第七篇---报表订阅
查看>>
WinCE API
查看>>
SQL语言基础
查看>>