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

Создать список из целых чисел. Исключить из списка все элементы, равные х - C++

Восстановить пароль Регистрация
 
Bob103
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 141
Завершенные тесты: 2
23.06.2016, 14:23     Создать список из целых чисел. Исключить из списка все элементы, равные х #1
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
#include <iostream>
#include "list.h"
#include <fstream>
 
 
using namespace std;
 
int main()
{
    ifstream in("input.txt");
    ofstream out("output.txt");
    
    List <int> getNumb;
    int i, x;
    cin >> x;
 
 
    while (in >> i)
    {
        getNumb.Insert(,i);
    }
 
    while (!getNumb.Empty())
    { 
        if (x != getNumb.Get())
            out << getNumb.Get() << " ";
        getNumb.Remove(x);
    }
    in.close();
    out.close();
    return 0;
}

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using namespace std;
 
template <class Item>
class List
{
private:
    struct Element
    {
        Item inf;
        Element *next;
        Element(Item x) : inf(x), next(0) {}
    };
    Element *head;
    int size;
    Element *Find(int index)
    {
        if ((index < 1) || (index > size))
        {
            return 0;
        }
        else
        {
            Element *cur = head;
            for (int i = 1; i < index; i++)
            {
                cur = cur->next;
            }
            return cur;
        }
    }
public:
    List() : head(0), size(0) {}
    ~List()
    {
        while (!Empty())
            Remove(1);
    }
    bool Empty()
    {
        return head == 0;
    }
    int GetLength()
    {
        return size;
    }
    Item Get(int index)
    {
        if ((index < 1) || (index > size))
        {
            return 0;
        }
        else
        {
            Element *r = Find(index);
            Item i = r->inf;
            return i;
        }
    }
    void Insert(int index, Item data)
    {
        if ((index < 1) || (index > size + 1))
        {
            return;
        }
        else
        {
            Element *newPtr = new Element(data);
            size = GetLength() + 1;
            if (index == 1)
            {
                newPtr->next = head;
                head = newPtr;
            }
            else
            {
                Element *prev = Find(index - 1);
                newPtr->next = prev->next;
                prev->next = newPtr;
            }
        }
    }
    void Remove(int index)
    {
        if ((index < 1) || (index > size))
        {
            return;
        }
        else
        {
            Element *cur;
            --size;
            if (index == 1)
            {
                cur = head;
                head = head->next;
            }
            else
            {
                Element *prev = Find(index - 1);
                cur = prev->next;
                prev->next = cur->next;
            }
            cur->next = 0;
            delete cur;
        }
    }
    void Print()
    {
        for (Element *cur = head; cur != 0; cur = cur->next)
        {
            out << cur->inf << " ";
        }
        out << endl;
    }
};
не знаю,как занести числа в список,т.е. там нужен индекс(где начать вносить)
Потом проблемы с удалением числа,как отсчитать индекс числа "x"
И с заполнением списка

Добавлено через 6 минут
C++
1
2
3
4
while (in >> i)
    {
        getNumb.Get(i);
    }
над заменить вроде

C++
1
2
3
4
5
6
while (!getNumb.Empty())
    { 
        if (x != getNumb.Insert())
            out << getNumb.Insert() << " ";
        getNumb.Remove(x);
    }
воот

Добавлено через 9 минут
всё равно не придумал,как отследить "x"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 14:23     Создать список из целых чисел. Исключить из списка все элементы, равные х
Посмотрите здесь:

C++ Из заданного массива целых чисел, который представлен в виде связанного списка, удалить все нулевые элементы, если они существуют
C++ Создать динамический список из случайных целых чисел?
C++ Создать однонаправленный кольцевой список целых чисел
C++ Дан двумерный массив целых чисел. В пятой строке имеются элементы, равные 13!
Удалить из списка целых чисел все парные элементы, посчитав их количество C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
afront
676 / 638 / 230
Регистрация: 29.02.2016
Сообщений: 2,068
23.06.2016, 14:28     Создать список из целых чисел. Исключить из списка все элементы, равные х #2
Связный список. Необходимо создать новый связный список только из положительных элементов
Bob103
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 141
Завершенные тесты: 2
23.06.2016, 14:30  [ТС]     Создать список из целых чисел. Исключить из списка все элементы, равные х #3
Там Си(
Blekzet
2 / 2 / 0
Регистрация: 21.12.2015
Сообщений: 71
23.06.2016, 14:35     Создать список из целых чисел. Исключить из списка все элементы, равные х #4
Bob103, Ну так почитай, подумай. Придумай как это "перефразировать" и т.д. :3
Yandex
Объявления
23.06.2016, 14:35     Создать список из целых чисел. Исключить из списка все элементы, равные х
Ответ Создать тему
Опции темы

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