首页主机资讯c语言怎么编写一个基本的顺序栈

c语言怎么编写一个基本的顺序栈

时间2024-02-29 09:44:04发布访客分类主机资讯浏览395
导读:以下是一个基本的顺序栈的C语言实现示例: #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 typedef struct { int...

以下是一个基本的顺序栈的C语言实现示例:

#include stdio.h>
    
#include stdlib.h>


#define MAX_SIZE 100

typedef struct {
    
    int data[MAX_SIZE];
    
    int top;

}
     Stack;


void initStack(Stack *s) {
    
    s->
    top = -1;

}


int isEmpty(Stack *s) {
    
    return s->
    top == -1;

}


int isFull(Stack *s) {
    
    return s->
    top == MAX_SIZE - 1;

}


void push(Stack *s, int value) {

    if (isFull(s)) {
    
        printf("Stack is full\n");
    
        return;

    }
    
    s->
    top++;
    
    s->
    data[s->
    top] = value;

}


int pop(Stack *s) {

    if (isEmpty(s)) {
    
        printf("Stack is empty\n");
    
        return -1;

    }
    
    int value = s->
    data[s->
    top];
    
    s->
    top--;
    
    return value;

}


int peek(Stack *s) {

    if (isEmpty(s)) {
    
        printf("Stack is empty\n");
    
        return -1;

    }
    
    return s->
    data[s->
    top];

}


int main() {
    
    Stack stack;
    
    initStack(&
    stack);
    

    push(&
    stack, 10);
    
    push(&
    stack, 20);
    
    push(&
    stack, 30);
    

    printf("Top element: %d\n", peek(&
    stack));
    

    printf("Popped element: %d\n", pop(&
    stack));
    
    printf("Popped element: %d\n", pop(&
    stack));
    
    printf("Popped element: %d\n", pop(&
    stack));
    

    printf("Is stack empty: %s\n", isEmpty(&
    stack) ? "true" : "false");
    

    return 0;

}
    

这段代码定义了一个基本的顺序栈数据结构,包括初始化栈、判断栈是否为空或满、入栈、出栈、获取栈顶元素的操作。在main函数中,进行了栈的初始化、入栈、出栈等操作,并打印了一些信息。

您可以根据自己的需求对该代码进行修改和扩展。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c语言怎么编写一个基本的顺序栈
本文地址: https://pptw.com/jishu/632701.html
c#中set的作用是什么 jenkins自动部署到k8s怎么实现

游客 回复需填写必要信息