Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<Windows.h>
- using namespace std;
- struct Node {
- int value;
- Node* next;
- };
- void clear_List(Node *&root);
- void addHead_StekList(Node *&root);
- void print_StekList(Node *&root);
- void createNode_StekList(Node *&root);
- void deleteHead_StelList(Node *&root);
- void addTail_TurnList(Node *root);
- void createNode_StekList(Node *&root);
- int main() {
- SetConsoleOutputCP(1251);
- SetConsoleCP(1251);
- int size = 5;
- int *mas = new int[size];
- for (int i = 0; i < 5; i++) {
- mas[i] = 0;
- }
- struct Node* root = NULL;
- int number = 0;
- while (true)
- {
- system("CLS");
- cout << "Меню." << endl;
- cout << "1. Стек." << endl;
- cout << "2. Очередь." << endl;
- cout << "3. Выход." << endl;
- cout << endl;
- cout << "Выберите пункт меню: ";
- char n;
- cin >> n;
- switch (n) {
- case '1': {
- bool bol = true;
- while (bol)
- {
- system("CLS");
- cout << "Подменю." << endl;
- cout << "1. Вставить {в начало}." << endl;
- cout << "2. Удалить {из начала}." << endl;
- cout << "3. Распечатать." << endl;
- cout << "4. Выход из пункта." << endl;
- cout << endl;
- cout << "Выберите пункт меню: ";
- char p;
- cin >> p;
- switch (p) {
- case '1': {
- if (root == NULL) {
- createNode_StekList(root);
- }
- else addHead_StekList(root);
- break;
- }
- case '2': {
- if (root == NULL) {
- cout << "Пустой." << endl;
- }
- else deleteHead_StelList(root);
- break;
- }
- case '3': {
- if (root == NULL) {
- cout << "Пустой." << endl;
- }
- else print_StekList(root);
- break;
- }
- case '4': {
- bol = false;
- break;
- }
- default: {
- cout << "Error." << endl;
- break;
- }
- }
- system("pause");
- }
- if (root != NULL) {
- clear_List(root);
- }
- break;
- }
- case '2': {
- bool bol = true;
- while (bol)
- {
- system("CLS");
- cout << "Подменю." << endl;
- cout << "1. Вставить {в конец}." << endl;
- cout << "2. Удалить {из конца}." << endl;
- cout << "3. Распечатать." << endl;
- cout << "4. Выход из пункта." << endl;
- cout << endl;
- cout << "Выберите пункт меню: ";
- char p;
- cin >> p;
- switch (p) {
- case '1': {
- if (root == NULL) {
- createNode_StekList(root);
- }
- else addTail_TurnList(root);
- break;
- }
- case '2': {
- if (root == NULL) {
- cout << "Пустой." << endl;
- }
- else deleteHead_StelList(root);
- break;
- }
- case '3': {
- if (root == NULL) {
- cout << "Пусто." << endl;
- }
- else print_StekList(root);
- break;
- }
- case '4': {
- bol = false;
- break;
- }
- default: {
- cout << "Error." << endl;
- break;
- }
- }
- system("pause");
- }
- if (root != NULL) {
- clear_List(root);
- }
- break;
- }
- case '3': {
- return 0;
- break;
- }
- default: {
- cout << "Error." << endl;
- break;
- }
- }
- system("pause");
- }
- delete[] mas;
- }
- void addHead_StekList(Node *&root) {
- cout << "Введите значение: ";
- int num;
- cin >> num;
- struct Node *temp = new struct Node;
- temp->next = root; // предыдущий узел указывает на создаваемый
- temp->value = num; // сохранение поля данных добавляемого узла
- root = temp;
- }
- void addTail_TurnList(Node *root) {
- cout << "Введите значение: ";
- int num;
- cin >> num;
- struct Node *temp = new struct Node;
- struct Node *p = root;
- while (p->next != NULL) {
- p = p->next;
- }
- // созданный узел указывает на следующий элемент
- temp->next = p->next;
- temp->value = num;
- p->next = temp;
- }
- void createNode_StekList(Node *&root) {
- cout << "Введите значение: ";
- int num;
- cin >> num;
- struct Node *temp = new struct Node; ;
- // выделение памяти под корень списка
- temp->value = num;
- temp->next = NULL; // это последний узел списка
- root = temp;
- }
- void print_StekList(Node *&root) {
- struct Node *temp = root;
- do
- {
- cout << temp->value << "\t";
- temp = temp->next;
- } while (temp != NULL);
- cout << endl;
- }
- void deleteHead_StelList(Node *&root) {
- struct Node *temp;
- temp = root->next;
- delete root;
- root = temp;
- }
- void clear_List(Node *&root) {
- do
- {
- deleteHead_StelList(root);
- } while (root != NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement