栈是限定仅在表头进行插入和删除操作的线性表。有着先进后出的特点(FILO);

如今我来动手实现栈的基本本功能练练手;

定义栈的头文件例如以下:

#ifndef CSTOCK_H_
#define CSTOCK_H_ const int STOCK_SIZE = 100;//定义栈的大小
typedef int elemType;//定义栈元素类型。眼下仅用int来练手 class CStock
{
public:
CStock(); //构造函数,构造空栈; bool push(elemType x); //进栈操作;
bool pop(elemType &x); //出栈操作;
void clear(); //清空栈;
bool isEmpty(); //推断是否栈空。
bool isFull(); //推断是否栈满。
void print(); //打印栈内元素; ~CStock(); private:
elemType elem[STOCK_SIZE];
int top;//指向栈顶;
}; #endif

实现基本功能例如以下:

#include "Stock.h"
#include<iostream>
using std::cout;
using std::endl; //构造函数
CStock::CStock():top(-1)
{ } //进栈操作,进栈成功返回true,否则返回false;
bool CStock::push(elemType x)
{
if(top == STOCK_SIZE - 1)
{
return false;
}
elem[++top] = x;
return true;
} //出栈操作,由形參x将元素带出主调函数。出栈成功返回true,否则返回false;
bool CStock::pop(elemType &x)
{
if(top == -1)
{
return false;
}
x = elem[top--];
return true;
} //清空栈,使栈为空。
void CStock::clear()
{
top = -1;
} //推断栈是否为空
bool CStock::isEmpty()
{
return top == -1;
} //推断栈是否栈满
bool CStock::isFull()
{
return top == STOCK_SIZE - 1;
} //打印栈
void CStock::print()
{
for(int i = 0; i <= top; i++)
{
cout << elem[i] << "\t"; if( (i+1) % 5 == 0)
cout << endl;
}
}
//析构函数
CStock::~CStock(void)
{ }

C++实现顺序栈的基本功能的更多相关文章

  1. 数据结构:C_顺序栈的实现

    数据结构顺序栈的实现(C语言版) 1.写在前面 栈是一种遵循元素先进(Push)后出(Pop)规则的线性表,它的实现可以用数组或者链表. ..... 2.代码分解 2.1对栈的结构定义: typede ...

  2. 把十进制整数转换为r(r=2)进制输出(顺序栈实现)

    上周的第二个作业补上~~ 上周的要求: 1.给出顺序栈的存储结构定义. 2.完成顺序栈的基本操作函数. 1)      初始化顺序栈 2)      实现入栈和出栈操作 3)      实现取栈顶元素 ...

  3. salesforce零基础学习(七十六)顺序栈的实现以及应用

    数据结构中,针对线性表包含两种结构,一种是顺序线性表,一种是链表.顺序线性表适用于查询,时间复杂度为O(1),增删的时间复杂度为O(n).链表适用于增删,时间复杂度为O(1),查询的时间复杂度为O(n ...

  4. C语言实现顺序栈的初始化&进栈&出栈&读取栈顶元素

    /*顺序表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define Stack_Size 50 //设栈中元素个数为50 ...

  5. 使用JAVA数组实现顺序栈

    1,首先总结一下线性表(分为顺序表和链接表,[即顺序存储结构和链式存储结构的区别])和栈(顺序栈和链接栈)还有队列(顺序队列和链接队列)的JAVA类库中的实现: java.util.ArrayList ...

  6. 利用顺序栈解决括号匹配问题(c++)-- 数据结构

    题目: 7-1 括号匹配 (30 分)   给定一串字符,不超过100个字符,可能包括括号.数字.字母.标点符号.空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配. 输入格式: 输入在一行 ...

  7. 数据结构与算法之顺序栈C语言实现

    顺序栈是一种特殊的顺序表,主要操作是入栈和出栈.将顺序表加一些特定限制,就成了顺序栈. 注: 1.顺序栈C语言实现: 2.按较简单的方式实现,主要帮助理解,可在此基础上修改,更加完善: 3.提供几个简 ...

  8. C++语言实现顺序栈

    C++语言实现顺序栈 在写C语言实现顺序栈的时候,我已经向大家介绍了栈的特点以及介绍了栈的相关操作,并利用C语言实现了相关算法.在这里小编就不在继续给大家介绍了,需要温习的可以去我的博客看看.在这篇博 ...

  9. D_S 顺序栈的基本操作

    //  main.cpp #include <iostream> using namespace std; #include "Status.h" typedef in ...

随机推荐

  1. docker(一):docker是什么?

    认识容器:docker入门篇 docker是什么? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚 ...

  2. 网络开发之使用Web Service和使用WCF服务

    判断是否有可用网络连接可以通过NetworkInterface类中的GetIsNetworkAvailable来实现: bool networkIsAvailable = networkInterfa ...

  3. (转)用JS实现表格中隔行显示不同颜色

    用JS实现表格中隔行显示不同颜色 第一种: <style> tr{bgColor:expression(     this.bgColor=((this.rowIndex)%2==0 )? ...

  4. 无桌面的linux 安装VMWare Tools

    1.在vmware虚拟机选项下,选择安装vmware-tools 2.将vmware安装目录下的linux.iso装载到系统中 2.1.选择需安装VMWareTools的虚拟机,右击--可移动设备-- ...

  5. 安卓Queue的使用

    Queue的成员函数        add        增加一个元索                     如果队列已满,则抛出一个IIIegaISlabEepeplian异常       rem ...

  6. mysql手册操作

    1.show table status   显示表状态 2.VERSION()   版本:CURRENT_DATE   当前日期: NOW()   当前时间:USER   当前用户 3.GRANT A ...

  7. 明明引用了jquery,js还是报错

    先引jquery,不然加载上一个js的时候jquery还没有加载 <script src="js/jquery-1.9.1.js" type="text/javas ...

  8. 天翼云 RDS数据库操作

    1.RDS数据库创建好之后点击RDS实例管理找到已下信息 官方文档 -1:http://www.ctyun.cn/help/qslist/567 官方文档 -2:http://www.ctyun.cn ...

  9. 15.id生成的两种方式

  10. mysql连接错误,error1251解决方式

    解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password.本文采用第二种方式ALTER USER 'root ...