主函数main内容怎么写

实现元素 1 2 3 4的入栈,并出栈两个元素后再入栈元素5 6 7,最后遍历打印当前栈中全部元素

img

#include <stdio.h>
#include <stdlib.h>
#define STACK_SIZE 10  
struct Stack {
    int top;  
    int data[STACK_SIZE];  
};
// 初始化栈
void initStack(struct Stack *s) {
    s->top = -1;
}
 
int isEmpty(struct Stack *s) {
    return s->top == -1;
}
 
int isFull(struct Stack *s) {
    return s->top == STACK_SIZE - 1;
}
 
void push(struct Stack *s, int element) {
    if (isFull(s)) {
        printf("栈已满,无法入栈\n");
        return;
    }
    s->top++;
    s->data[s->top] = element;
}
 
int pop(struct Stack *s) {
    if (isEmpty(s)) {
        printf("栈为空,无法出栈\n");
        return -1;
    }
    int element = s->data[s->top];
    s->top--;
    return element;
}
 
void traverse(struct Stack *s) {
    printf("当前栈中的元素为:\n");
    for (int i = s->top; i >= 0; i--) {
        printf("%d ", s->data[i]);
    }
    printf("\n");
}
int main() {
    struct Stack s;
    initStack(&s);
 
    push(&s, 1);
    push(&s, 2);
    push(&s, 3);
    push(&s, 4);
 
    pop(&s);
    pop(&s);
 
    push(&s, 5);
    push(&s, 6);
    push(&s, 7);
  
    traverse(&s);
    return 0;
}

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/1086409
  • 这篇博客也不错, 你可以看下给一个不多于5位的正整数,要求:①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为321,应输出123
  • 除此之外, 这篇博客: 7-44 本题要求编写程序,输入一个三位数,输出其个位数字、十位数字和百位数字中的 输入样例: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里给出一组输入。例如:

    152
    
  • 您还可以看一下 CSDN就业班老师的第五章:版权交易系统前端功能实现课程中的 前端系统业务功能设计与实现-上传图片功能实现02小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    这是一道简单的栈的题目,按照题意,我们需要将元素1、2、3、4先依次压入栈中,之后再弹出两个元素,并将元素5、6、7压入栈中,最后遍历并打印栈中的所有元素。

    根据题目,我们需要先了解栈的一些基本操作,如压栈(Push)、出栈(Pop)和遍历栈。

    栈是一种受限的线性表,只能在链的一端进行插入和删除操作,遵循先进后出(Last-In-First-Out)的原则。

    以下是本题参考代码:

    #include <iostream>
    #include <stack>
    
    using namespace std;
    
    int main(){
        stack<int> s; //定义一个stack模板类
        int arr[] = {1, 2, 3, 4, 5, 6, 7};
    
        for (int i = 0; i < 4; i++){ //元素1、2、3、4先依次压入栈中
            s.push(i+1);
        }
        for (int i = 0; i < 2; i++){ //再弹出两个元素
            s.pop();
        }
        for (int i = 4; i < 7; i++){ //并将元素5、6、7压入栈中
            s.push(arr[i]);
        }
        while(!s.empty()){ //最后遍历并打印栈中的所有元素
            cout << s.top() << " "; //输出栈顶元素
            s.pop(); //出栈
        }
        cout << endl;
        return 0;
    }
    

    在这段代码中,我们先定义一个stack模板类,将元素1、2、3、4先依次压入栈中,压栈操作使用push函数;之后再弹出两个元素,出栈操作使用pop函数;并将元素5、6、7压入栈中;最后遍历并打印栈中的所有元素,使用top函数取栈顶元素并使用pop函数出栈,直到栈为空。

    需要注意的是,此处需要引入和库,如果是使用VS Code编译,需要在tasks.json中配置相应的参数。

    完整代码如下: