继续更文。这次用类来写栈和队列,都是用数组模拟的;

以下是栈和队列的定义:

然后分别是栈和队列的类:

完整代码贴上:

//使用类来定义栈
class ZHAN
{
public:
STACK s;
//栈的基本操作
void csh(STACK & s); //初始化
bool isempty(STACK & s); //判断是否为空
bool isfull(STACK & s); //判断是否为满
bool push(STACK & s,int val); //入栈
bool pop(STACK & s,int & val); //出栈
int ding(STACK & s); //取栈顶元素
int len(STACK & s); //取栈的长度(有效元素个数)
void SHOW(STACK & s); //遍历栈
};
void ZHAN::csh(STACK & s)
{
s.top=-1;
}
bool ZHAN::isempty(STACK & s)
{
if(-1==s.top)
return true;
else
return false;
}
bool ZHAN::isfull(STACK & s)
{
if(s.top==MAX-1) //下标从零开始
return true;
else
return false;
}
bool ZHAN::push(STACK & s,int val)
{
if(isfull(s))
return false;
else
{
s.data[++s.top]=val; //top指针从-1开始 所以先++才能用
return true;
}
}
bool ZHAN::pop(STACK & s,int & val)
{
if(isempty(s))
return true;
else
{
val=s.data[s.top--];
return true;
}
}
int ZHAN::ding(STACK & s)
{
if(isempty(s))
{
cout<<"此栈为空栈!!"<<endl;
}
else
{
return s.data[s.top];
}
}
int ZHAN::len(STACK & s)
{
return s.top+1;
}
void ZHAN::SHOW(STACK & s)
{
int i;
while(!isempty(s)) //当栈不为空 不断的出栈取值
{
pop(s,i);
cout<<i<<endl;
}
}

队列

//使用类来定义队列
class DUILIE
{
public:
QUEUE q;
//队列的基本操作
void csh(QUEUE & q); //初始化
bool isempty(QUEUE & q); //判断是否为空
bool isfull(QUEUE & q); //判断是否为满
int head(QUEUE & q); //取队头元素
bool pop(QUEUE & q,int & val); //将队头元素出队
bool push(QUEUE & q,int val); //将队尾元素入队
void SHOW(QUEUE & q); //遍历队列
};
void DUILIE::csh(QUEUE & q)
{
q.f=-1;
q.r=-1;
}
bool DUILIE::isempty(QUEUE & q)
{
return q.f==q.r?true:false;
}
bool DUILIE::isfull(QUEUE & q)
{
if(q.r==MAX-1)
return true;
else
return false;
}
int DUILIE::head(QUEUE & q)
{
if(isempty(q))
{
cout<<"此队列为空!!"<<endl;
}
else
{
return q.data[q.f+1];
}
}
bool DUILIE::pop(QUEUE & q,int & val)
{
if(isempty(q))
return false;
else
{
val=q.data[++q.f];
return true;
}
}
bool DUILIE::push(QUEUE & q,int val)
{
if(isfull(q))
return false;
else
{
q.data[++q.r]=val;
return true;
}
}
void DUILIE::SHOW(QUEUE & q)
{
if(isempty(q))
cout<<"此队列为空!!"<<endl;
else
{
for(int i=q.f+1; i<=q.r; i++)
cout<<q.data[i]<<" ";
cout<<endl;
}
}

  

实验效果如如下:

老规矩,有错改之,无则加勉。

一起学习,一起进步。

去吃饭了哈哈。

因为我的代码是贴上去的 而不是写的 居然说不足150字不让发布

以下是凑字数的,忽略忽略;

山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?

c++用类写栈和队列的简单基本操作(实验)的更多相关文章

  1. hdu 1702 栈和队列的简单应用

    #include<stdio.h> #include<string.h> #include<queue> #include<stack> using n ...

  2. C++自带栈与队列_stack_queue_C++

    栈和队列我们可以用C++里自带的函数使用,就不必手写了 1.栈,需要开头文件 #include<stack>  定义一个栈s:stack<int> s; 具体操作: s.emp ...

  3. Javascript用数组实现栈和队列

    栈是遵循后进先出(LIFO)规则的一种有序集合,比如桌上的一叠书,我们只能从上面放或取. 队列是遵循先进先出(FIFO)规则的一种有序集合,比如排队,先排到的先离开. 数组也是一种有序的集合,它与上面 ...

  4. 从零开始写STL—栈和队列

    从零开始写STL-栈和队列 适配器模式 意图:将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 主要解决:主要解决在软件系统中,常常要将 ...

  5. 二、 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)

    请指教交流! package com.it.hxs.c01; import java.util.Stack; /* 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek) */ ...

  6. Stack栈类与、Queue队列与线性表的区别和联系

    栈和队列都属于特殊的线性表   一.定义   1.线性表(linear list): 是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列.数据元素是一个抽象的符号,其具体含义在不同的情 ...

  7. perl自定义简易的面向对象的栈与队列类

    perl中的数组其实已经具备了栈与队列的特点,下面是对数组经过一些封装的stack,queue对象 1.Stack类 创建一个Stack.pm文件 package Stack; sub new{ $s ...

  8. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

  9. Java数据结构和算法 - 栈和队列

    Q: 栈.队列与数组的区别? A: 本篇主要涉及三种数据存储类型:栈.队列和优先级队列,它与数组主要有如下三个区别: A: (一)程序员工具 数组和其他的结构(栈.队列.链表.树等等)都适用于数据库应 ...

随机推荐

  1. CodeForces - 294A Shaass and Oskols

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  2. Problem H

    Problem Description 穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个 ...

  3. 使用Apache Commons Email 发生邮件

    Apache Commons Email的Maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-e ...

  4. javaCountDownLatch闭锁

    package com.java.concurrent; import java.util.concurrent.CountDownLatch; /** * CountDownLatch: 闭锁,在完 ...

  5. 通用的contain函数

    用来检测节点所属关系:document.documentElement.contains(document.body) function contains(refNode, otherNode) {i ...

  6. Android 中图片压缩分析(上)

    作者: shawnzhao,QQ音乐技术团队一员 一.前言 在 Android 中进行图片压缩是非常常见的开发场景,主要的压缩方法有两种:其一是质量压缩,其二是下采样压缩. 前者是在不改变图片尺寸的情 ...

  7. [转载] Storm:最火的流式处理框架

    转载自http://www.cnblogs.com/langtianya/p/5199529.html 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同 ...

  8. Vocabulary & Phrase

    Vocabulary A ANSI    美国国家标准学会,American National Standards Institute的缩写 a couple of    [口语]少数的,几个 a s ...

  9. 转-Gitorious搭建步骤

    先标记一下,后续手动验证 http://blog.csdn.net/king_sundi/article/details/7457475 安装Gitorious Git是一个分布式的版本控制系统,用于 ...

  10. 实战项目——mysql主从架构的实现

    一主一从 1.1 环境准备: centos系统服务器2台. 一台用户做Mysql主服务器, 一台用于做Mysql从服务器, 配置好yum源. 防火墙关闭. 各节点时钟服务同步. 各节点之间可以通过主机 ...