小朋友学数据结构(2):栈

作者: 海天一树X | 来源:发表于2018-04-25 13:13 被阅读124次

栈是一种先入后出的数据结构。
如下图所示,入栈的顺序为1、2、3;出栈的顺序则反过来:3、2、1。

stack.png

可以想象往一个箱子里放书,先放进去的书必然在箱子的底部,最后放进去的书在箱子的顶部。拿书的时候则要先拿顶部(后放进去)的书,最先放进去的书最后才能拿出来。

栈可以用链表来实现:

#include<iostream>
using namespace std;

struct node         //定义栈的结点结构
{
    int data;
    node *next;
};

class Stack
{
    node *top;          //栈顶指针

public:
    Stack()             //构造函数
    {
        top = NULL;
    }

    void push(int i);   //入栈函数

    int pop();          //出栈函数
};

void Stack::push(int x) //入栈
{
    node *newnode = new node;
    newnode->data = x;
    newnode->next = top;
    top = newnode;
}

int Stack::pop()        //出栈
{
    int topVal = top->data;
    node *tmp = top;    //tmp指针指向栈顶结点
    top = top->next;    //栈顶指针指向栈顶的下一个结点
    delete tmp;         //删除原先的栈顶结点

    return topVal;      //返回被删除的值
}

int main()
{
    Stack A;
    int arr[]={3,12,8,9,11};

    cout << "入栈顺序: ";
    for(int i = 0; i < 5; i++)
    {
        cout << arr[i] << " ";
        A.push(arr[i]);
    }
    cout << endl;

    cout << "出栈顺序: ";
    for(int i = 0; i < 5; i++)
    {
        cout << A.pop() << " ";
    }
    cout << endl;

    return 0;
}

运行结果:

入栈顺序: 3 12 8 9 11
出栈顺序: 11 9 8 12 3

TopCoder & Codeforces & AtCoder交流QQ群:648202993
更多内容请关注微信公众号


wechat_public.jpg

相关文章

  • 小朋友学数据结构(2):栈

    栈是一种先入后出的数据结构。如下图所示,入栈的顺序为1、2、3;出栈的顺序则反过来:3、2、1。 可以想象往一个箱...

  • 栈和队列

    1、栈 栈是一种先进先出的数据结构。栈顶进栈,栈顶出栈。 数据结构 栈的初始化 进栈 出栈 栈的最小值 2、队列 ...

  • 004 go语言实现栈

    1 数据结构 数据结构: 要实现的功能:0 栈的初始化1 获取栈长度2 入栈3 出栈4 清空栈内容5 判断栈是否为...

  • Android面试题总结(题目+复习链接)

    数据结构 1.栈实现原理 java数据结构与算法之栈(Stack)设计与实现 - CSDN博客 2.链表实现原理 ...

  • 6-Python 数据结构初识

    课程概要:1、Python 数据结构概述2、Python 常见数据结构——栈3、Python 常见数据结构——队列...

  • 一、如何理解“栈”? 1、栈是一种操作受限的数据结构,只支持入栈和出栈操作。 2、典型的“栈”结构:后进者先出,先...

  • Java核心类库—— 数据结构

    Java核心类库-------数据结构体系图 1.数据结构 2.栈 3.哈希表

  • 2020年最新整理的java学习路线

    阶段一:数据结构 一、基础 1、基本的数据结构 [](1)基础概念 [](2)数组 [](3)链表 [](4)栈:...

  • 最新整理的java学习路线

    阶段一:数据结构 一、基础 1、基本的数据结构 [](1)基础概念 [](2)数组 [](3)链表 [](4)栈:...

  • java高级知识点

    1.数据结构 程序=数据结构+算法 栈:后进先出,线性结构 入栈:push 出栈:pop假如已知入栈顺序是ab...

网友评论

    本文标题:小朋友学数据结构(2):栈

    本文链接:https://www.haomeiwen.com/subject/qooelftx.html