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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
#1

Написать программу, которая удаляет из линейного списка входной последовательности целых чисел узел - C++

20.04.2014, 22:19. Просмотров 389. Ответов 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
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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
struct ult
{
    int x;
    ult *pravo;
};
 
int main()
{
    setlocale (LC_ALL, "Russian");
    ult *k = NULL, *top = NULL;
    int y, a, b = 0;
    cout << "Введите количество чисел: ";
    cin >> y;
    cout << endl << "Введите числа: " << endl;
    for(int i = 0; i < y; i++)
    {
        cin >> a;
        k = new ult;
        k->pravo = top;
        k->x = a;
        top = k;
    }
    cout << endl << "Стек:" << endl;
    while(k != NULL)
    {
        cout << k->x << " ";
        k = k->pravo;
    }
    k = top;
    ult *v = top;
    while(k != NULL)
    {
        for(int i = 2; i <= k->x; i++) //условие мб не правильное
        {
            if () // что тут писать?
            {
                b++;
            }
        }
        if(b == 1)
        {
            if(k == top)
            {
                top = k->pravo;
                delete k;
                k = top;
            }
            else
            {
                v->pravo = k->pravo;
                delete k;
                k = v->pravo;
            }
            goto end;
        }
        else
        {
            v = k;
            k = k->pravo;
        }
        b = 0;
    }
end:
    {
    cout << endl << endl << "Cтек без узла, содержащего число, равное числу предыдущего узла списка: " << endl;
    k = top;
    while(k != NULL)
    {
        cout << k->x << " ";
        k = k->pravo;
    }
    cout << endl;
    system("pause");
    }
}
Построить односвязный список из входной последовательности целых чисел. Написать программу, которая удаляет из линейного списка входной последовательности целых чисел: Узел, содержащий число, равное числу предыдущего узла списка.

Как условие записать, что число равно предыдущему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая удаляет из линейного списка входной последовательности целых чисел узел (C++):

Написать программу, которая в последовательности целых чисел определяет количество чётных чисел, кратных 7 - C++
Здравствуйте, помогите пожалуйста с написанием кода. Напишите программу, которая в последовательности целых чисел определяет...

Написать программу, которая вычисляет сумму первых n целых положительных целых чисел - C++
Написать программу, которая вычисляет сумму первых n целых положительных целых чисел. Количество суммируемых чисел должно вводиться во...

Напишите программу, которая по заданной входной последовательности вычисляет ее медиану - C++
Кароче такое задание: Напишите программу, которая по заданной входной последовательности вычисляет ее медиану. нашел в интернете эту...

Написать программу определения максимального числа в последовательности целых положительных чисел - C++
4)Написать программу определения максимального числа в последовательности целых положительных чисел.

Определить длину линейного списка состоящего из целых чисел - C++
как определить длину линейного списка состоящего из целых чисел?

Написать программу, которая вычисляет факториал неотрицательных целых чисел n - C++
//3. Дано натуральное число n. Написать программу, которая вычисляет факториал неотрицательных целых чисел n (т.е. число целое и больше 0)....

5
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
20.04.2014, 22:40 #2
Нужно идти по списку, используя два соседних указателя. И если числа в этих узлах равны, удаляем второй узел. Пусть head-первый элемент списка
C++
1
2
3
4
5
6
    for (ult *p1 = Head, *p2 = Head->pravo; p2 != NULL; p1 = p1->pravo, p2= p1->pravo){
        if (p1->x == p2->x){
            p1->pravo = p2->pravo;
            delete p2;
        }
    }
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
21.04.2014, 09:38  [ТС] #3
fishec, Ошибка 2 error C2227: выражение слева от "->pravo" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\users\виктор\documents\visual studio 2010\projects\лабораторная работа 5(2 семестр)\лабораторная работа 5(2 семестр)\лаб5(2).cpp 39
Ошибка 1 error C2440: инициализация: невозможно преобразовать "int" в "ult *" c:\users\виктор\documents\visual studio 2010\projects\лабораторная работа 5(2 семестр)\лабораторная работа 5(2 семестр)\лаб5(2).cpp 39
4 IntelliSense: выражение должно иметь тип указателя c:\users\виктор\documents\visual studio 2010\projects\лабораторная работа 5(2 семестр)\лабораторная работа 5(2 семестр)\лаб5(2).cpp 39
3 IntelliSense: значение типа "int" нельзя использовать для инициализации сущности типа "ult *" c:\users\виктор\documents\visual studio 2010\projects\лабораторная работа 5(2 семестр)\лабораторная работа 5(2 семестр)\лаб5(2).cpp 39
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
23.04.2014, 10:06  [ТС] #4
Подниму! Выручайте!

Добавлено через 12 часов 59 минут
Подниму!
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
24.04.2014, 12:42  [ТС] #5
Подниму!
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 244
25.04.2014, 22:21  [ТС] #6
Подниму!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2014, 22:21
Привет! Вот еще темы с ответами:

Написать программу которая находит сумму четных целых чисел от -20 до 98 - C++
Написать программу которая находит сумму четных целых чисел от -20 до 98

Удалить из односвязного линейного списка определенный узел - C++
Построить односвязный список из входной последовательности целых чисел. Написать программу, которая удаляет из линейного списка входной...

Написать программу на с++, которая выполняет операцию над матрицей целых чисел - C++
Мне нужно написать программу, которая выполняет операцию над матрицей целых чисел. Матрицу следует размещать в динамической памяти. Размер...

Написать программу которая из 3 целых чисел выводит на экран те, которые являются четными - C++
даны 3 целых числа. вывести на экран те из них которые являются четными --- вот условие задачи на с++ надо почему выдает ошибку?


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
25.04.2014, 22:21
Ответ Создать тему
Опции темы

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