前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构【静态栈】代码实现

数据结构【静态栈】代码实现

作者头像
Sky_Mao
发布2020-07-24 10:11:59
5240
发布2020-07-24 10:11:59
举报
代码语言:javascript
复制
#include "pch.h"
#include <iostream>

typedef struct sTack
{
    int * pData;
    int nSize;
    int nTop;
} *PSTACK;

void initStack(PSTACK pStack, int nSize);
bool stack_isEmpty(PSTACK pStack);
bool stack_isFull(PSTACK pStack);
void stack_push(PSTACK pStack, int nData);
void stack_pop(PSTACK pStack, int &nData);
void show_stack(PSTACK pStack);

void initStack(PSTACK pStack, int nSize)
{
    pStack->pData = (int*)malloc(sizeof(int) * nSize);
    pStack->nSize = nSize;
    pStack->nTop = 0;
}

bool stack_isEmpty(PSTACK pStack)
{
    if (pStack->nTop == 0)
    {
        return true;
    }

    return false;
}

bool stack_isFull(PSTACK pStack)
{
    if (pStack->nTop == pStack->nSize)
    {
        return true;
    }

    return false;
}

void stack_push(PSTACK pStack, int nData)
{
    if (stack_isFull(pStack))
    {
        std::cout << "栈空间满了!!" << std::endl;
        return;
    }

    pStack->pData[pStack->nTop] = nData;
    pStack->nTop++;
}

void stack_pop(PSTACK pStack, int & nData)
{
    if (stack_isEmpty(pStack))
    {
        std::cout << "栈空间空了!!" << std::endl;
        return;
    }

    nData = pStack->pData[pStack->nTop - 1];
    pStack->nTop--;
}

void show_stack(PSTACK pStack)
{
    if (stack_isEmpty(pStack))
    {
        return;
    }

    for (int i = pStack->nSize - 1; i >= 0; --i)
    {
        std::cout << pStack->pData[i] << "\t";
    }

    std::cout << std::endl;
}

int main()
{
    sTack s;
    initStack(&s, 6);
    stack_push(&s, 1);
    stack_push(&s, 2);
    stack_push(&s, 3);
    stack_push(&s, 4);
    stack_push(&s, 5);
    stack_push(&s, 6);

    int nData;
    stack_pop(&s, nData);
    std::cout << "弹出的元素为:" << nData << std::endl;
    
    stack_push(&s, 7);

    show_stack(&s);
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档