Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.12.2015
Сообщений: 36
1

Поменять два элемента списка, которые находятся после минимального, вывести новый список

22.05.2017, 22:51. Показов 1105. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Используя стековую структуру, создать и вывести неупорядоченный цифровой список. Поменять два элемента, которые находятся после минимального, вывести новый список.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
#include <iostream>
using namespace std;
//Описание типа узла стека.
struct Node {
Node *next;                       //указатель на узел: динамисескую структру Node
char ch;                          //данные узла.
Node(): next(NULL),ch(0){}                  //инициализация умолчания.
Node(Node *p, char tch): next(p),ch(tch){}  //заданая инициализация.
};
//-------------------------------------------------------------------
void push(Node **pptop , char tch);    //добавление на вершину стека.
void pop(Node**pptop);                 //выборка из вершины стека.
void update(Node**pptop);              //освобождение памяти из под стека.
void print(Node *ptop);                //вывести стек.
void input(Node **pptop);              //ввод стека.
inline char get_top(Node *ptop){ return ptop->ch; }
//-------------------------------------------------------------------
//Главная функция.
int main(){
Node *top = NULL;   //клиентский указатель на вершину стека.
  input(&top);        //вводим  стек.
  print(top);         //выводим стек.
  print(top);         //опять выводим стек.
update(&top);       //освобождаем память, если она была выделена.
system("pause");
return 0;
}
//------------------------------------------------------------------
//добавление на вершину стека.
void push(Node **pptop , char tch){
Node *p = new Node(*pptop,tch);        //cоздаем узел и связываем его с предыдущим узлом.
*pptop = p;                            //на созданный узел наводиться указатель вершины стека.
}
//выборка из вершины стека.
void pop(Node**pptop){
    //Если стек создан: указатель вершины не NULL.
    if(*pptop){
      char t = (*pptop)->ch;      //получаем данные из вершины стека.
          Node *pd = *pptop;          //получаем адрес вершины стека.
         (*pptop)=(*pptop)->next;  //изменяем указатель вершины стека на следующий элемент.
         delete pd;                        //удаляем старую вершину стека.
    pd = NULL;                 
    }
}
//освобождение памяти из под стека.
void update(Node**pptop){ while(*pptop)pop(pptop);  }
//вывести стек.           
void print(Node *ptop){
 
   while(ptop){
      cout<<ptop->ch<<endl;    //вывод.
      ptop=ptop->next;            //к следующему.
   }
cout<<endl;
}
//ввод стека.
void input(Node **pptop){
 
    unsigned int i(0);
    char data(0);
    cout<<"count->: "; cin>>i;            //количество вводов.
    while(i){
      cout<<"-->" ; cin>>data;  //введите значение.
          push(pptop,data);                  //cоздаем очередной узел стека.
          i--;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2017, 22:51
Ответы с готовыми решениями:

Вставить после данного элемента списка новый элемент, и вывести указатель на добавленный элемент
Дано число D и указатель Р0 на один из элементов пустая двозвязного списка. Вставить после данного...

Сложить два соседних элемента списка и вывести их в новый список
Здраствуйте! помогите пожалуйста разобраться с задачей! Нужно сложить два соседних элемента списка...

Список: Формирование списка из n элементов, вставка элемента после минимального, удаление дубликатов.
Формирование списка из n элементов. Вставка элемента после минимального. Оставить в списке только...

Поменять два элемента односвязного списка
Я где-то ошибся, и функция swap(smen2 -&gt; pNext, smen1 -&gt; pNext); в строке 123 ничего не меняет:...

0
22.05.2017, 22:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2017, 22:51
Помогаю со студенческими работами здесь

Вычислить сумму четных элементов, которые находятся в массиве после первого нечетного элемента
Всем привет,прошу помочь,написать программу на языке СИ по этой задаче,буду очень...

Как поменять два соседних элемента списка?
Здравствуйте! Как поменять два соседних элемента списка? Вот код: #include &lt;stdio.h&gt;...

Поменять местами два элемента двусвязного списка
Доброго времени суток. Помогите пожалуйста с задачей. Необходимо реализовать функцию, которая...

Поменять местами два элемента односвязного списка
Дан односвязный список. Требуется напечатать исходный список. Поменять местами два элемента списка,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru