美文网首页
基本数据结构——栈

基本数据结构——栈

作者: SouthBegonia | 来源:发表于2017-12-06 10:20 被阅读0次

什么是栈

对于n个数据元素构成的一个线性序列,如果只允许在其指定的一端插入或删除一个数据元素,这种逻辑结构称为栈(stack)或者栈堆。

允许插入的一端称为栈顶,另一端固定端称为栈底。没有元素的堆栈称为空栈。

栈是一种"后进先出(Last Input First Out)"的数据结构。

栈通常用于数据逆序处理的各种场合,如:

  • 对数据进行收尾元素的互换操作
  • 函数的嵌套调用和返回地址的存放
  • 编译过程中的语法分析等

运算和实现

栈的基本运算主要有入栈,出栈和判断:

  • 入栈(压栈):在栈顶添加新的元素的操作,新的元素成为新的栈顶元素。入栈需要足够的空间,否则栈会产生溢出,称为上溢。

  • 出栈(退栈,弹栈):将栈顶的元素从栈中退出并传递给用户程序的操作,原栈顶元素的后继元素成为新的栈顶。出栈时必须保证栈内数据不能为空,否则发生下溢。

  • 判断操作用来检查栈内数据是否为空,返还结果是一逻辑值。如果栈顶和栈底重合,说明栈堆为空。

栈的操作

递归实例

/*  递归演示 */
#include<stdio.h>
void up_and_down(int);
int main()
{
    up_and_down(1);
    return 0; 
}

void up_and_down(int n)
{
    printf("Level %d : n location %p\n", n, &n );
    if ( n < 4 )
        up_and_down( n+1 );
    printf("LEVEL %d : n location %p\n", n, &n);
}

系统的输出为:

Level 1:  n location  0x0012ff48
Level 2:  n location  0x0012ff3c
Level 3:  n location  0x0012ff30
Level 4:  n location  0x0012ff24
LEVEL 4:  n location  0x0012ff24
LEVEL 3:  n location  0x0012ff30
LEVEL 2:  n location  0x0012ff3c
LEVEL 1:  n location  0x0012ff48
我理解的递归

需要注意:

  • 每级递归的变量n都属于本级递归私有。
  • Level 1 和LEVEL 1 的地址相同,以此类推。

相关文章

  • 05--栈 递归

    栈 栈(Stack)又名堆栈,它是一种重要的数据结构。从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作是线...

  • Axure的另类学习法(一)——队列与栈

    在学习数据结构时,书中提到了两种最基本的数据结构“队列”与“栈”。 于是,想用Axure来实现下队列和栈的两种基本...

  • LeetCode刷题之栈、队列

    栈(Stack) 又名堆栈,它是一种重要的数据结构。从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作是线性...

  • C++-栈-Stack的语法呀2020-06-14

    栈 基本概念 属于数据结构的知识。LIFO,即last-in-fist-out。 核心语法 包头 进栈,出栈,读出...

  • 泡杯茶,我们坐下聊聊javascript事件环

    栈和队列 在计算机内存中存取数据,基本的数据结构分为栈和队列。 栈(Stack)是一种后进先出的数据结构,注意,有...

  • 栈的数据结构 栈数据结构方面特点是数据具有先进后出的特点,下面是用数组简单实现了栈的基本方法 概念 运行原理 问题...

  • android数据结构

    基本数据结构:数组、链表、栈、队列栈:LIFO 压栈出栈,只允许在栈顶操作队列:FIFO ,一般只允许队尾插,队首...

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

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

  • 最新整理的java学习路线

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

  • 顺序栈的表示和实现

    栈是一种重要的数据结构,从数据结构角度来看,栈也是线性表,其特殊性在于栈的基本操作是线性操作的子集,是操作受限的线...

网友评论

      本文标题:基本数据结构——栈

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