问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言编程实现顺序栈的初始化,入栈,出栈,取栈顶元素,显示操作

发布网友 发布时间:2022-05-05 17:07

我来回答

2个回答

热心网友 时间:2022-06-27 19:51

#define STACKSIZE 100
int mstack[STACKSIZE],top,bottom;
void mInitStack() { top=bottom=0; }
void mPush(int x) { if ( top-bottom<=STACKSIZE ) { mstack[top]=x; top++; } }
int mPop() { int r=0; if ( top>bottom ) { r=mstack[top]; top--; } return r; }
void mShowStack() { int i; printf("["); for ( i=bottom;i<top;i++ ) printf("%d ",mstack[i]); printf("]\n"); }
void main()
{
    int i,n,x,loop=1,s;
    char buffer[80];
    mInitStack();
    scanf("%d",&n); for ( i=0;i<n;i++ ) { scanf("%d",&x); mPush(x); }
    mShowStack();
    while ( loop )
    { buffer[1]=0; gets(buffer); s=1;
        switch ( buffer[1] )
        { case 'O':
            case 'o': x=mPop(); break;
            case 'U':
            case 'u': x=atoi(buffer+5); mPush(x); break;
            case 'n':
            case 'N': loop=0; break;
            default: s=0; break;
        }
        mShowStack();
    }
    mShowStack();

}

热心网友 时间:2022-06-27 19:52

#include<stdio.h>
#include<stdlib.h>
#define SIZE 100
typedef struct __Stack
{
    int *data;
    int pos;
}Stack;

int Stack_Initial(Stack *stack)
{
    stack->data = (int*) malloc(sizeof(int));
    if(stack->data == NULL) return 0;
    stack->pos = -1;
}

int Stack_Push(Stack *stack,int value)
{
    if(stack->pos == (SIZE-1) ) 
    {
        printf("栈已满\n");
        return 0;
     }
     stack->pos++;
     stack->data[stack->pos] = value;
     return 1;
}

int Stack_Pop(Stack *stack)
{
    if(stack->pos == -1) return 0;
    stack->pos--;
    return 1;
}

int Stack_GetTop(Stack *stack)
{
    if(stack->pos == -1)
    {
        printf("栈为空\n");
        return 0;
    }
    return stack->data[stack->pos];
}

void Stack_Show(Stack *stack)
{
    if(stack->pos == -1)
    {
        printf("栈为空\n");
        return;
    }
    for(int i = 0; i <= stack->pos;i++)
    {
        printf("%10d",stack->data[i]);
    }
}

void Stack_Destroy(Stack *stack)
{
    free(stack->data);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
驾驶结业证是什么 驾驶员结业证到底是什么 城投水投交投区别 交投城投哪个好 ...老是出现临时文件。那位高手教我设置一下吧 ...error: one or more table pointers are invalid. modification could... ...solve求解k文件时总是提示error invalid option on the command li... jcreator 编译时出现:Invalid command line. Error : Invalid... cc1: error: invalid option `short-load-bytes' ...Nginx 提示./configure: error: invalid option "/data/soft/nginx... 5分钟通便的作品目录 用c语言编写一个程序实现顺序栈的初始化,出栈和入栈。急需,谢谢 编写一个C源程序,其中包含顺序表示的空栈的创建、判断栈是否为空、进栈、出栈、取栈顶元素等操作。 怎么样缓解便密 怎么用c语言实现一个顺序栈 实体创业和网络创业,是否都能进行融资呢? 千牛怎么设置疫情停发地区 冰箱冷冻蓝色胶带需要撕掉吗 当男朋友给我发那咱们俩如何坠入爱河怎么回答? linux 的设备号满了之后系统会怎么样 linux用mknod怎么创建设备,创建了设备怎么用 主次设备号的应用 什么是主设备号和次设备号 你能结合实际说明0点5,2分之一,50%的含义吗 二分之一的含义和三分之一的含义 二分之一表示什么? 二分之一在生活实际具体表示什么? 二分之一的意思是什? 听命运交响曲第一段的感悟 关于(听了命运交响曲的感受) 顺序栈的实现C的实现 for c语言实现顺序栈的建立 用数组实现栈的功能的C语言代码? 便密怎么办? 建立顺序存储的栈,并对之进行入栈、出栈、取栈顶元素操作的c语言算法 那位C语言高手能解决用C语言和数据结构帮我编写一个顺序栈的,实现任意表达式.注:一定要用顺序栈的! 通便的好方法 求一个顺序栈的源程序和一个顺序表的源程序(C语言版的) 用c语言可执行文件实现顺序栈的出栈、入栈、判栈空、判栈满!急求啊,谢谢各位朋友的帮助啊!!!!!! C++顺序栈的实现 C语言中用顺序栈如何实现 逆序输出 手机连接电脑外置声卡,要调试声卡手机上怎么远程? 凤凰传奇的歌曲 2019年的大米到现在还能吃吗? 英语中最美的的十大经典爱情句子什么??? 吴京导演的《战狼》是一部怎样的作品? 战狼1电影什么时候上映的 明朝灭亡后,崇祯帝的妃子和公主结局是怎样的? 在崇祯死后,那些没有自杀成功的妃嫔最后的下场怎样? 明朝皇帝死后他的妃子会咋样