Найти максимальный элемент стека

C++C++Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом уроке вы научитесь находить максимальный элемент стека на языке программирования C++. Мы дадим вам пошаговое руководство по использованию стека для нахождения максимального элемента и также подробно объясним каждую строку кода.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/while_loop("While Loop") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/strings -.-> lab-96137{{"Найти максимальный элемент стека"}} cpp/while_loop -.-> lab-96137{{"Найти максимальный элемент стека"}} cpp/function_parameters -.-> lab-96137{{"Найти максимальный элемент стека"}} cpp/output -.-> lab-96137{{"Найти максимальный элемент стека"}} cpp/standard_containers -.-> lab-96137{{"Найти максимальный элемент стека"}} cpp/code_formatting -.-> lab-96137{{"Найти максимальный элемент стека"}} end

Создайте новый файл на C++

Создайте новый файл с именем main.cpp в каталоге ~/project. В файле main.cpp включите необходимые библиотеки C++:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

Определите функции для стека

Определите две функции: findMax(), чтобы найти максимальный элемент стека, и show(), чтобы вывести элементы стека.

void findMax(stack<int> s) {
    int m = s.top();
    int a;

    while (!s.empty()) {
        a = s.top();
        if (m < a)
            m = a;
        s.pop();
    }
    cout << "\n\nМаксимальный элемент стека равен: " << m << endl;
}

void show(stack<int> s) {
    while (!s.empty()) {
        cout << "  " << s.top();
        s.pop();
    }
    cout << endl;
}

Определите функцию main()

В функции main() создайте новый стек типа int и заполните его элементами с использованием метода push().

Вызовите функцию show(), чтобы вывести элементы стека в порядке LIFO.

Наконец, вызовите функцию findMax(), чтобы найти максимальный элемент в стеке.

int main() {
    cout << "\n\nДобро пожаловать в программу по работе со стеком на C++!\n\n\n";

    stack<int> s;
    s.push(4);
    s.push(2);
    s.push(20);
    s.push(12);
    s.push(52);
    s.push(14);

    cout << "Элементы стека в порядке LIFO: ";
    show(s);

    findMax(s);

    return 0;
}

Скомпилируйте и запустите программу

Скомпилируйте программу с использованием следующей команды в терминале:

g++ main.cpp -o main &&./main

Посмотрите на вывод

Вывод программы должен быть следующим:

Welcome to the Stack Program in C++!

The elements of the Stack in LIFO order are:   14  52  12  20  2  4
The maximum element of the stack is: 52

Резюме

В этом уроке мы узнали, как найти максимальный элемент в стеке на языке программирования C++. Надеемся, что этот урок был полезен для вас!