动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

数据结构栈的概念

08-03 09:18 3193浏览
举报 T字号
  • 大字
  • 中字
  • 小字

堆栈的概念:

是一组相同类型数据的集合,并且拥有后进先出的特点,所有的操作都在堆栈顶端进行。

堆栈的基本操作:

Init 创建一个空堆栈

Push 把数据压入堆栈顶端

Pop 从堆栈顶弹出数据

Top 从栈顶取数据

Empty 判断堆栈是否为空堆栈,是则返回true,否则返回false

Full 判断栈是否为满,是则返回true,否则返回false

数组实现堆栈:

typedef struct st_stack{
    int size;
    int *data;
    int top;
}T_Stack;
int StackInit( T_Stack *ptStack, int *data, int size)
{
    ptStack->size = size;
    ptStack->data = data;
    ptStack->top = 0;
    return 0;
}
int StackPush( T_Stack *ptStack, int data )
{
    if( ptStack->top == ptStack->size )
    {
        return -1;
    }
    ptStack->data[ptStack->top++] = data;
    return 0;
}
int StackPop( T_Stack *ptStack, int *data )
{
    if( ptStack->top == 0 )
    {
        return -1;
    }
    *data = ptStack->data[--ptStack->top];
    return 0;
}
int StackTop( T_Stack *ptStack, int *data )
{
    if( ptStack->top == 0 )
    {
        return -1;
    }
    *data = ptStack->data[ptStack->top - 1];
    return 0;
}
int StackIsEmpty( T_Stack *ptStack )
{
    return ( ptStack->top == 0 );
}
int StackIsFull( T_Stack *ptStack )
{
    return ( ptStack->top == ptStack->size );
}

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看数据结构视频教程哦!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵498
程序员代码小兵498

153篇文章贡献528999字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消