顺序栈之C++实现
顺序栈就是用顺序表(数组)实现的栈。其组织形式如下图所示:
下面介绍下我用C++实现的顺序栈,在VC6下调试通过。不足之处还请指正。
1、文件组织
2、ss.h栈类的声明及宏的定义
#ifndef _SS_H_
#define _SS_H_ typedef int dataType;
#define maxSize 100 class stack
{
public:
stack();
//~stack();
void push(dataType var); //压栈
void pop(); //出栈,什么都不返回
dataType stackTop(); //返回栈顶数据,栈顶不变化
bool isEmpty(); //空则返回true,否则返回false
bool isFull(); //满则返回true,否则返回false private:
dataType s[maxSize]; //顺序表组成的栈空间
int top; //栈顶指针
}; #endif
3、ss.cpp栈类成员函数的定义
#include "ss.h" stack::stack()
{
top = -1; //表示栈为空
} void stack::push(dataType var)
{
s[++top] = var; //入栈
} void stack::pop()
{
--top; //出栈只要将指针向下移
} dataType stack::stackTop()
{
return s[top]; //s[top]为栈顶数据
} bool stack::isEmpty()
{
return top == -1; //top为-1时栈为空
} bool stack::isFull()
{
return top == maxSize-1; //top为maxSize时栈为满
}
4、mian.cpp
#include <iostream>
#include "ss.h"
using namespace std; int main()
{
stack exp; //只有栈未满才能压栈
if(!exp.isFull())
{
exp.push(1);
} //只有栈非空才能取栈顶元素和出栈
if(!exp.isEmpty())
{
cout<<"栈顶数据是: "<<exp.stackTop()<<endl;
exp.pop();
} if(exp.isEmpty())
{
cout<<"栈为空!"<<endl;
} return 0;
}
顺序栈之C++实现的更多相关文章
- 数据结构:C_顺序栈的实现
数据结构顺序栈的实现(C语言版) 1.写在前面 栈是一种遵循元素先进(Push)后出(Pop)规则的线性表,它的实现可以用数组或者链表. ..... 2.代码分解 2.1对栈的结构定义: typede ...
- D_S 顺序栈的基本操作
// main.cpp #include <iostream> using namespace std; #include "Status.h" typedef in ...
- 数据结构Java实现05----栈:顺序栈和链式堆栈
一.堆栈的基本概念: 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...
- 01顺序栈_Stack---(栈与队列)
#include "stdio.h" #include "stdlib.h" #include "io.h" #include " ...
- 把十进制整数转换为r(r=2)进制输出(顺序栈实现)
上周的第二个作业补上~~ 上周的要求: 1.给出顺序栈的存储结构定义. 2.完成顺序栈的基本操作函数. 1) 初始化顺序栈 2) 实现入栈和出栈操作 3) 实现取栈顶元素 ...
- 数据结构之顺序栈SqStack
顺序栈SqStack 基本操作 Status InitStack()//构造一个空栈S Status DestroyStack()//销毁栈S,S不再存在 Status ClearStack()//把 ...
- 顺序栈和链式栈(C++实现)
顺序栈,是一种基于数组的存储表示. 实现类代码如下: template<class T> class SeqStack{ T *element; int top; int maxSize; ...
- salesforce零基础学习(七十六)顺序栈的实现以及应用
数据结构中,针对线性表包含两种结构,一种是顺序线性表,一种是链表.顺序线性表适用于查询,时间复杂度为O(1),增删的时间复杂度为O(n).链表适用于增删,时间复杂度为O(1),查询的时间复杂度为O(n ...
- 【小白成长撸】--顺序栈(C语言版)
// 顺序栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h"//test1.0--栈表仅限Int类型 #include <stdio. ...
随机推荐
- 浅谈局域网ARP攻击的危害及防范方法(图)
浅谈局域网ARP攻击的危害及防范方法(图) 作者:冰盾防火墙 网站:www.bingdun.com 日期:2015-03-03 自 去年5月份开始出现的校内局域网频繁掉线等问题,对正常的教育教 ...
- Java Servlet的配置文件web.xml配置内容和具体含义
文件名:“SimpleServlet.java” package cn.mldn.lxh.servlet ;//定义包 import java.io.* ; // HttpServlet属于javax ...
- N个数依次入栈,出栈顺序有多少种
题目:N个数依次入栈,出栈顺序有多少种? 首先介绍一下卡特兰数:卡特兰数前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 2 ...
- css案例学习之并集选择器
代码 <html> <head> <title>并集选择器</title> <style type="text/css"> ...
- 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置
本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...
- 元数据(meta-data)
本章所介绍的元数据的知识,可能在定制系统时会用到.因为那是后需要修改底层框架的一些内容 一.元数据的定义 在AndroidManifest.xml中如下书写: <activity android ...
- Oracle 基础查询知识点
1.Oracle 别名 如果非固定格式的列名可以如此 select last_name as name from employees 如果想显示固定格式的别名的话,则别名必须使用"" ...
- 关于 ls 命令的一个小小的缺陷
linux 的 ls : ls后边加上要显示的路径时:比方 ls /tmp 它会打印一边 /tmp 下的信息 当ls后边跟上多个同样路径的名字是,它会打印多次同样的信息 比方 ls /tmp /tmp ...
- poj3267--The Cow Lexicon(dp:字符串组合)
The Cow Lexicon Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8211 Accepted: 3864 D ...
- C++关注备注部分知识点
//关注备注部分知识点. #include <iostream> #include <string><span style="white-space:pre&q ...