Форум программистов, компьютерный форум CyberForum.ru

Описать функцию, которая удаляет все минимальные элементы из списка - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.65
Em1ly
 Аватар для Em1ly
5 / 5 / 0
Регистрация: 21.05.2010
Сообщений: 154
08.09.2010, 17:32     Описать функцию, которая удаляет все минимальные элементы из списка #1
Помогите пожалуйста. Я студент второго курса. (Не программист ни разу >.<") Мне нужна помощь в написании программы. Завтра уже нужно принести результат. Вот сама задача:

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

Очень прошу помощи!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2010, 17:32     Описать функцию, которая удаляет все минимальные элементы из списка
Посмотрите здесь:

C++ Описать функцию, которая определяет, входят ли все элементы первого списка в состав второго списка.
C++ Написать функцию, которая удаляет из строки s1 все символы, встречающиеся в строке s2
Написать функцию, которая переставляет элементы массива типа int так, что все положительные элементы предшествуют отрицательным. C++
описать функцию, которая заменяет все вхождения элемента C++
Динамические структуры данных. Сформировать динамический список, описать функцию, которая удаляет из списка за каждым вхождением элемента Е C++
C++ Программа которая удаляет из массива все отрицательные элементы
Написать функцию, которая удаляет все лишние пробелы C++
C++ Описать процедуру и функцию которая, удаляет из списка L за каждым вхождением элемента Е один элем если такой есть, и он отличен от Е
C++ Описать функцию, которая удаляет из строки все лишние пробелы
C++ Описать процедуру или функцию, которая находит max элемент не пустого списка L
C++ Функция удаляет из списка все отрицательные элементы
Описать функцию, которая объединяет два упорядоченных по возрастанию списка в один C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.09.2010, 21:09     Описать функцию, которая удаляет все минимальные элементы из списка #2
Em1ly, вот тебе шаблонный связный список-стек:
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
69
70
71
72
73
74
75
76
77
#ifndef MY_STACK_HPP
#define MY_STACK_HPP
 
#include <stdexcept>
 
namespace my
{
    template<class T>
    class stack
    {
        struct node
        {
            T       value;
            node*   next;
 
            node(const T& val)
                : value(val), next(NULL) {}
        };
        node*       top;
 
    public:
 
        stack();
        ~stack();
        void push(const T& val);
        T pop();
        bool empty() const;
    };
 
    template<class T>
    stack<T>::stack()
        : top(NULL) {}
 
    template<class T>
    stack<T>::~stack()
    {
        while(top)
        {
            node* temp = top;
            top = top->next;
            delete temp;
        }
    }
 
    template<class T>
    void stack<T>::push(const T &val)
    {
        if(top)
        {
            node* newNode = new node(val);
            newNode->next = top;
            top = newNode;
        }
        else
            top = new node(val);
    }
 
    template<class T>
    T stack<T>::pop()
    {
        if(!top)
            throw(std::runtime_error("Can't pop from the empty stack"));
        T retVal = top->value;
        node* delNode = top;
        top = top->next;
        delete delNode;
        return retVal;
    }
 
    template<class T>
    bool stack<T>::empty() const
    {
        return (top == NULL);
    }
}
 
#endif // MY_STACK_HPP
Длина списка не ограничена. Хотя под твою задачу больше подойдет вот эта тема.
Em1ly
 Аватар для Em1ly
5 / 5 / 0
Регистрация: 21.05.2010
Сообщений: 154
08.09.2010, 21:15  [ТС]     Описать функцию, которая удаляет все минимальные элементы из списка #3
эээм...что-то у нас такого даже не было на лекции оо
да и...у вас тут просто составление списка-стека? оо
у нас оно короче выглядит...
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.09.2010, 21:23     Описать функцию, которая удаляет все минимальные элементы из списка #4
Em1ly, это объявление шаблонного класса-стека. Дальнейшая работа со стеком может выглядеть так:
C++
1
2
3
4
5
6
7
8
9
10
// ... создание экземпляра стека, хранящего элементы типа int:
my::stack<int> istack;
// ... Проталкивание элементов в стек:
for(size_t i = 0; i < 5; ++i)
    istack.push(i + 1);
// ... Проверка, пуст ли стек:
std::cout << "Stack is" << (istack.empty() ? " empty" : " not empty") << std::endl;
// ... Выталкивание всех элементов стека:
while(!istack.empty())
    std::cout << istack.pop() << std::endl;
Если это непонятно (тем более, если еще не проходили на лекциях), тогда есть смысл по ссылке, которую я дал - там есть реализация очереди на основе (динамического) массива. А вообще, нужно пользоваться поиском - такая (или подобная) тема уже была.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
08.09.2010, 23:48     Описать функцию, которая удаляет все минимальные элементы из списка #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
 
int main(){
    size_t size;
    int val;
    std::list<int> list;
    
    std::cout << "Number of elements: ";
    std::cin >> size;
    for ( size_t i = 0; i < size; ++i ){
        std::cout << "#" << ( i + 1) << ": ";
        std::cin >> val;
        list.push_back(val);
    }
    
    std::list<int>::iterator fnd = std::min_element(list.begin(), list.end());
    val = *fnd;
    std::cout << "The minimum value is " << val << std::endl;
    while ( ( fnd = std::find(list.begin(), list.end(), val) ) != list.end() )
        list.erase(fnd);
    
    std::cout << "List without this value(s):" << std::endl;
    std::copy(list.begin(), list.end(), std::ostream_iterator<int>(std::cout, "\n"));
    
    return 0;
}
Yandex
Объявления
08.09.2010, 23:48     Описать функцию, которая удаляет все минимальные элементы из списка
Ответ Создать тему
Опции темы

Текущее время: 13:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru