数据结构——顺序栈的学习
2016-03-04 14:20
435 查看
对于顺序栈的学习 要把握住 先进后出 栈顶标识的位置的意义 就能很好理解
#include <iostream>
using namespace std;
const int MaxSize = 100;
template <class DataType>
class SeqStack
{
public:
SeqStack(){ top = -1;}//无参构造函数 top=-1 表明是空栈
~SeqStack(){}
void push(DataType x);//将元素x入栈 只能从栈顶入
DataType pop();//元素出栈 从栈顶出栈
DataType getTop(){if(top!=-1)return data[top];}//返回栈顶元素 不改变指针
int empty(){top==-1?return 1:return 0;}//问号表达式 验证是否为空
private:
DataType data[MaxSize];
int top;//栈顶指针 指明栈顶元素的下标 空栈为-1
};
template<class DataType> void SeqStack<DataType>::push(DataType x)
{
if(top == MaxSize-1)
{
throw"溢出";
}
else
{
data[++top] = x;
}
}
template<class DataType> DataType SeqStack<DataType>::pop()
{
if(top == -1)
{
throw"空栈";
}
else
{
int x = data[top--];
return x;
}
}
注意:
对于top的前增还是后增要注意关系变化
#include <iostream>
using namespace std;
const int MaxSize = 100;
template <class DataType>
class SeqStack
{
public:
SeqStack(){ top = -1;}//无参构造函数 top=-1 表明是空栈
~SeqStack(){}
void push(DataType x);//将元素x入栈 只能从栈顶入
DataType pop();//元素出栈 从栈顶出栈
DataType getTop(){if(top!=-1)return data[top];}//返回栈顶元素 不改变指针
int empty(){top==-1?return 1:return 0;}//问号表达式 验证是否为空
private:
DataType data[MaxSize];
int top;//栈顶指针 指明栈顶元素的下标 空栈为-1
};
template<class DataType> void SeqStack<DataType>::push(DataType x)
{
if(top == MaxSize-1)
{
throw"溢出";
}
else
{
data[++top] = x;
}
}
template<class DataType> DataType SeqStack<DataType>::pop()
{
if(top == -1)
{
throw"空栈";
}
else
{
int x = data[top--];
return x;
}
}
注意:
对于top的前增还是后增要注意关系变化
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- C++基于栈实现铁轨问题
- 数据结构之Treap详解
- C语言栈的表示与实现实例详解
- C语言实现颠倒栈的方法
- 算法系列15天速成 第十天 栈
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- 一看就懂:图解C#中的值类型、引用类型、栈、堆、ref、out
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Array栈方法和队列方法的特点说明
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture