栈的实现.

admin2024-08-24  13

         这是C++算法基础-数据结构专栏的第二十一篇文章,专栏详情请见此处


引入

        栈是一种常用的一种线性数据结构。它的使用非常广泛,例如在函数调用中用于保存局部变量、在表达式求值中用于保存操作数等。

        下面我们就来讲栈的实现。

定义

        栈(stack)的修改与访问是按照后进先出的原则进行的,因此栈通常被称为是后进先出(last in first out)表,简称 LIFO 表。

过程

        栈就像一个桶,只有一个开口,你往里放东西,等到你要拿东西的时候,第一个拿出来的一定是最后一个放进去的,这就叫先进后出。

        我们接下来要学习五种栈的最主要操作:构建,插入(写入)数据、删除数据、取栈顶值、判断栈是否为空

        构建栈

        我们先定义一个数组栈的实现.,stk[],第1张,用来表示,接着还需要一个变量栈的实现.,tt,第2张,用来表示栈顶

        向栈顶插入(写入)数据

        先在栈顶进行数据赋值,然后将栈的实现.,tt++,第3张

        从栈顶弹出数据

        直接栈的实现.,tt--,第4张,使栈减少一层。

        取栈顶值

        输出栈的实现.,stk[tt],第5张的值即可。

        判断栈是否为空

        判断栈顶的位置,若栈的实现.,tt==0,第6张,说明栈为空,反之也成立。

性质

        时间复杂度

        上述关于栈的操作,时间复杂度都是栈的实现.,O(1),第7张的。

代码

        下面给出栈的实现代码:

int stk[N],tt=0;

void push(int x){
    stk[++tt]=x;
}

void pop(){
    tt--;
}

int top(){
    return stk[tt];
}

bool empty(){
    if(tt==0) 
        return 1;
    else
        return 0;
}
        代码解释

        第一行的各种变量和数组已经在前面讲解了,这里不再详细讲解;push()函数的作用是向栈顶插入(写入)数据;pop()函数的作用是从栈顶弹出数据;top()函数的作用是取栈顶值;empty()函数的作用是判断栈是否为空。


上一篇-双链表的实现    C++算法基础专栏文章    下一篇-表达式求值问题的实现


每周六更新一篇文章,内容一般是自己总结的经验或是在其他网站上整理的优质内容

点个赞,关注一下呗~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!