Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab4_anis_saod.docx
Скачиваний:
2
Добавлен:
14.09.2019
Размер:
61.72 Кб
Скачать

If (lst.Empty())

cout << "Список пуст.";

else {

list <int>::iterator it;

for (it=lst.begin(); it!=lst.end(); it++) cout << " " << *it;

}

cout << "\n\n";

system("pause");

system("cls");

break;

case 3: if (lst.empty())

cout << "\n\n*** Список пуст ***\n\n";

else

cout << "\n\nКоличество элементов в список: " << lst.size() << "\n\n";

system("pause");

system("cls");

break;

case 4: if (!(lst.empty())) {

lst.sort();

cout << "\nСписок отсортирован\n\n";

}

else

cout << "\nСписок пуст\n\n";

system("pause");

system("cls");

break;

case 5: lst.clear();

cout << "\nСписок очищен\n\n";

system("pause");

system("cls");

break;

case 6: if (lst.empty())

cout << "Список пуст.\n\n";

else {

cout << "\nВведите значение элемента, который будет удален из списка: ";

cin >> num;

cout << "\n\n";

lst.remove(num);

}

system("pause");

system("cls");

break;

case 7: if (lst.empty())

cout << "Список пуст.\n\n";

else {

lst.unique();

cout << "\nПовторяющиеся элеметы удалены\n\n";

}

system("pause");

system("cls");

break;

case 8: if (lst.empty())

cout << "Список пуст.\n\n";

else {

lst.reverse();

cout << "\nПорядок элементов в списке изменен\n\n";

}

system("pause");

system("cls");

break;

case 9: if (lst.empty())

cout << "Список пуст.\n\n";

else {

cout << "\nПервый элемент: " << lst.front() << "\n";

cout << "Последний элемент: " << lst.back() << "\n\n";

}

system("pause");

system("cls");

break;

case 0: br=1; break;

}

}

return 0;

}

Int menu () {

short key = -1;

cout << "1. Добавить элементы в список\n";

cout << "2. Просмотр списка\n";

cout << "3. Количество элементов в списке\n";

cout << "4. Сортировка элементов списка\n";

cout << "5. Очистить список\n";

cout << "6. Удалить элемент из списка с опредленным значением\n";

cout << "7. Удалить повторяющиеся элементы\n";

cout << "8. Выстроить элементы списка в обратном порядке\n";

cout << "9. Получить первый и последний элемент списка\n";

cout << "0. Выход \n";

cout << "Индекс пункта: ";

cin >> key;

while (key<0 || key>9) {

cout << "\nНеверный ввод, выберите пункт заново: ";

cin >> key;

}

cout << "\n";

return key;

}

Стек — структура данных, в которой доступ к элементам организован по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно снять верхнюю.

Добавление элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху). Удаление элемента, называемое также выталкиванием (pop), тоже возможно только из вершины стека, при этом второй сверху элемент становится верхним.

Стеки широко применяются в вычислительной технике. Например, для отслеживания точек возврата из подпрограмм используется стек вызовов, который является неотъемлемой частью архитектуры большинства современных процессоров. Языки программирования высокого уровня также используют стек вызовов для передачи параметров при вызове процедур.

Основные функции для работы со стеками в C++:

stack <тип данных> st;

st.empty() – проверка на пустоту стека

st.size() – размер стека

st.top() – доступ к следующему элементу

st.push(x) – добавить элемент

st.pop() – удалить элемент

#include <iostream>

#include <stack>

#include <cstdlib>

using namespace std;

int menu ();

int main () {

setlocale (LC_ALL, "Russian");

stack <int> st;

short br=0;

int element, i, num;

while (br!=1) {

short key = menu();

switch (key) {

case 1: cout << "\nВведите количество элементов, которое требуется добавить: ";

cin >> num;

cout << "Введите элементы: ";

for (i=0; i<num; i++) {

cin >> element;

st.push(element);

}

cout << "\n\n";

system("pause");

system("cls");

break;

case 2: cout << "\nЭлементы стека: ";

if (st.empty()) cout << "Стек пуст."; else

while (!(st.empty())) {

cout << st.top() << " ";

st.pop();

}

cout << "\n\n";

system("pause");

system("cls");

break;

case 3: if (st.empty())

cout << "\n\n*** Стек пуст ***\n\n";

else

cout << "\n\nКоличество элементов в стеке: " << st.size() << "\n\n";

system("pause");

system("cls");

break;

case 0: br=1; break;

}

}

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]