栈 链式结构

一个概念:

C++ STL - stack

代码:

#include<iostream>
#include<stack>//头文件using namespace std;
int main()
{
    stack <int> stk;//创建一个栈,名为stk,元素类型为int

    cout<<"1: push  2: pop   3:size of zhan  4: the top number    5:empty?"<<endl;
    char ch;
    paji: cin>>ch;
    switch(ch)
    {
        case ‘1‘:
        {
             //元素进栈
            cout<<"The number of numbers to insert:";
            int num;
            cin>>num;
            while(num--)
            {
               int a;
               cin>>a;
               stk.push(a);
            }
            break;
        }
        case ‘2‘:
        {
            //使栈顶部的元素出栈,返回void类型
            cout<<"The number of numbers to be stacked:";
            int k;
            cin>>k;
            while(k--)
            {
               stk.pop();
            }
            break;
        }
        case ‘3‘:
        {
            //返回栈的大小,有多少元素
            cout << stk.size() << endl;
            break;
        }
        case ‘4‘:
        {
            //top() 返回栈最顶部的元素,且不改变栈
            cout << stk.top() << endl;
            break;
        }
        case ‘5‘:
        {
            //查看栈是否为空,如果为空,返回真(1)
             cout << stk.empty() << endl;
             break;
        }
    }
    goto paji;
    return 0;
}

今天也是元气满满的一天!good luck!

时间: 2024-10-13 07:02:56

栈 链式结构的相关文章

栈的链式结构表示与实现——自己写数据结构

今天给大家介绍栈的链式结构,用dev-c++4.9.9.2调试通过,少废话直接上代码: 数据结构体存放文件stacklist.h文件如下 #ifndef _STACKLIST_H_ #define _STACKLIST_H_ typedef struct _Node { int data; struct _Node *pre; struct _Node *next; }Node,*pNode; typedef struct _Stack_Header { struct _Node *botton

栈和队列分别的顺序结构和链式结构

栈和队列 栈和队列本身作为特殊的线性表,要记住他俩本身就费劲.难受的是他俩还能分别考虑顺序结构和链式结构,很复杂,容易混淆. 其实比起FILO(先进后出)和FIFO(先进先出)等特点,更重要的是对指针的把握.进出顺序是在逻辑层面的,只要理解就行,难得是如何用指针来表示这种特点,于是我就此方面进行个总结. 顺序栈 虽然栈只需要对一段进行操作(栈顶),但我们除了栈顶指针(top)外,还需要设置栈底指针(base),主要是为了用于判断栈空栈满. s.top == s.base; //当栈顶指针等于栈底

不要打断链式结构:使用 RxJava的 compose() 操作符

不要打断链式结构:使用 RxJava的 compose() 操作符

文件上传以及JS链式结构

文件上传: 文件上传使用FileUpload控件,使用控件的SaveAs方法,需要绝对路径. 获取文件的绝对路径:Server.MapPath(相对路径); 或许要上传文件的本身名字用.FileName获取. 因为名字相同的文件将会被直接覆盖,所以一般文件名字要拼接上传时间和用户名保证不重名. 上传文件默认最大为4MB,在C#端限制文件大小有缺陷,一般用JS端限制. 获取要上传的文件通过ID获取FileUpload控件然后通过value值获取文件然后通过.length属性确定是否有文件要上传,然

链式结构实现堆排序

在很多数据结构和算法的书上,"堆排序"的实现都是建立在数组上,数组能够通过下标访问其元素,其这一特性在堆排序的实现上,使得其编码实现比链式结构简单,下面我利用链表实现堆排序. 在"堆"这种数据结构中,分为"大根堆"和"小根堆","大根堆"中其每一个双亲节点大于等于其子女节点,"小根堆"的定义与其相 反, 当然实现最大堆之前必须要建一个堆,一个高度为h的堆,它的前h-1层时满的,如下图所示

01-用链式结构打印学生成绩单

用链式结构打印学生成绩单 #include <iostream> using namespace std; struct StScore { std::string id; int math; int english; int computer; struct StScore* next; }; int main() { StScore first; first.id = "C"; first.math = 80; first.english = 85; first.com

数据结构-线性表的链式结构

线性表的链式结构,与之前说过的线性表的顺序结构差不多,区别在于存储结构和方式的不一样. 在链式中,来一个数据就去寻找一个空间存储一个结点有多少数据占多大的地方,是动态的存储方式.另外顺序表如果存储1MB就只占1MB存储空间,但是链式表不一样,它会有额外的空间去存储对应结点的指针. 这样一分析结构就出来了,链式结构为两部分:1.结点域.2.指针域.实现方法用动态存储. 1 #include "stdio.h" 2 #include "stdlib.h" 3 4 typ

顺序结构与链式结构

摘抄自,严蔚敏<算法与数据结构> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

二叉树顺序结构实现/链式结构实现

程杰<大话数据结构>这部分的源码乱起八糟的.自己总结下: 顺序结构: #include "stdafx.h" #include "string.h" #include "stdio.h" #include "stdlib.h" #include <iostream> using namespace std; #define ok 1 #define error 0 #define true 1 #def