`
lovnet
  • 浏览: 6704806 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

数据结构:stack栈的初始化、入栈、出栈及显示栈元素

 
阅读更多
#include<iostream.h>
const int MAX=5;     //假定栈中最多保存5个数据

//定义名为stack的类,其具有栈功能
class  stack {
    //数据成员
    float  num[MAX];  //存放栈数据的数组
    int  top;          //指示栈顶位置的变量
public:
    //成员函数
    void init(void) { top=0; }    //初始化函数
    void push(float x)          //入栈函数
    {
        if (top==MAX){
            cout<<"Stack is full !"<<endl;
            return;
        };
        num[top]=x;
        top++;
    }
    float pop(void)          //出栈函数
    {
        top--;
        if (top<0){
        cout<<"Stack is underflow !"<<endl;
        return 0;
        };
        return num[top];
    }
}

//以下是main()函数,其用stack类创建栈对象,并使用了这些对象
main(void)
{
    //声明变量和对象
    int i;
    float x;
    stack a,b;    //声明(创建)栈对象

    //以下对栈对象初始化
    a.init();
    b.init();

    //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象
    for (i=1; i<=MAX; i++)
        a.push(2*i);

    //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
    for (i=1; i<=MAX; i++)
       cout<<a.pop()<<"  ";
    cout<<endl;

    //以下利用循环和push()成员函数将键盘输入的数据依次入b栈
    cout<<"Please input five numbers."<<endl;
    for (i=1; i<=MAX; i++) {
         cin>>x;
         b.push(x);
    }
 
    //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
    for (i=1; i<=MAX; i++)
       cout<<b.pop()<<"  ";
}


文献来源:

UNDONER(小杰博客) :http://blog.csdn.net/undoner

LSOFT.CN(琅软中国) :http://www.lsoft.cn

分享到:
评论

相关推荐

    数据结构中关于栈c语言源码

    数据结构栈的c语言实现实例程序,供大家学习用。 关于栈的抽象数据类型,初始化,入栈,出栈,清空栈等操作!

    数据结构链栈的基本操作的实现.cpp

    栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。对栈来说,表尾端有其特殊含义,称为栈顶 (top), 表头端称为栈底 (bottom)。不含元素的空表称为空栈。...链栈有着初始化、入栈、出栈、去栈顶元素等操作。

    数据结构实验6-栈

    实现基于顺序表的顺序栈(数据结构定义+基本运算) 设计算法判断一个算术表达式的圆括号是否正确配对。  第一个式子: 1*(2+3*(4*(2-1)*(3+x)+5)-6) 能够正确匹配  第二个式子: 1*(2+3*4*(2-1)*(3+x)+5)-6) 不...

    数据结构课程设计--迷你计算器设计

    通过该题目的设计过程,可以加深理解线性表及栈的逻辑结构、存储结构,掌握线性表及栈上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力...

    Python 数据结构之堆栈实例代码

    Python 堆栈 堆栈是一个后进先出(LIFO)...stack = [] # 初始化一个列表数据类型对象, 作为一个栈 def pushit(): # 定义一个入栈方法 stack.append(raw_input('Enter New String: ').strip()) # 提示输入一个入栈的 S

    The-use-of-stack-in-data-structures.rar_栈_链式栈

    数据结构中栈的运用方法,有入栈,出栈,初始化栈,删除栈顶元素,依次输出栈元素,以及链式栈的同样操作。

    c++顺序栈的实现demo

    在计算机编程中,栈(Stack)是一种重要的数据结构,它遵循后进先出(Last In First Out, LIFO)的原则。顺序栈是栈的一种实现方式,它使用数组来存储数据,并提供了一系列操作栈的函数,如入栈(push)、出栈(pop...

    C语言实现数据结构—–栈

    栈是一种先进后出(LIFO)的数据结构,栈的一个最重要的特征就是只能在栈顶进行入栈和出栈操作。今天我们来讲一下最简单的栈的实现,静态栈的实现,可以把它看作是一个数组,但是这个数组我们只能在它的末尾进行插入和...

    [详细完整版]数据结构实现.pdf

    数据结构和算法的一点实现 一、Stack 篇 1.实现最基本的 push pop 操作。 2. 用链表实现,数据结构为 count(统计个... //堆栈的基本结构 void StackInit(pStack &S) //堆栈初始化 { S=new Stack; S-&gt;data=0; S-&gt;next=NU

    数据结构C严蔚敏版_全注释源码_线性表队列栈监视哨查找折半直接插入排序冒泡快速选择

    数据结构及算法C语言版。严蔚敏版。VC6运行通过,这个是源代码CPP文件,包含顺序线性表、单链表的插入、删除、查找。包含监视哨查找,折半查找,直接插入排序,希尔排序,冒泡排序,快速排序,选择排序。里面包含超...

    栈表的操作

    //栈的初始化 int InitStack(SqStack *s) { Elemtype *p; p=s-&gt;stack; p=(Elemtype *)malloc(MAXNUM*sizeof(Elemtype)); if(!p) return 0; s-&gt;top=-1; return 1; } //入栈 int push(SqStack *s,Elemtype x) { ...

    栈的操作(实验报告).doc

    熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在 栈的顺序存储结构和链式存储结构上的实现; 2. 熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基本 操作...

    数据结构 第三章 栈和队列

    Status Init_Stack(BDStacktype &tws,int m)//初始化一个大小为m的双向栈tws { tws.base[0]=(Elemtype*)malloc(sizeof(Elemtype)); tws.base[1]=tws.base[0]+m; tws.top[0]=tws.base[0]; tws.top[1]=tws.base[1]...

    java堆栈的区别 -- 详解

    栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),...

    最短距离问题 数据结构与算法

    //=============初始化栈============== Status InitStask(SqStack *S) { S-&gt;base=(SElemtype *)malloc(sizeof(SElemtype)); if(!S-&gt;base) return ERROR; S-&gt;top=S-&gt;base; S-&gt;stacksize=0; return OK; } //==...

    C语言课程设计报告停车场管理系统.doc

    "栈"的定义可知,每一次入栈的元素都在原栈顶元素之上成为新的元素,每一次出栈的 元素总是当前栈顶元素使次栈元素成为新的栈顶元素,即最后进栈者先出栈。程序中采 用的结构是: typedef struct NODE{ CarNode *...

    ActivityLifeCycleTest

    #The activity lifecycle(活动的生命周期)##返回栈 Back Stack栈是一种后进先出的数据结构,在默认情况 下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们 按下 Back 键或调用 finish...

    传智播客扫地僧视频讲义源码

    本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...

Global site tag (gtag.js) - Google Analytics