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

Удаление структуры из двусвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ visual studio 2012 не позволяет смотреть результат программы http://www.cyberforum.ru/cpp-beginners/thread1082801.html
Доброго времени суток, может быть, я не правильно сформулировал свою проблему, но смысл в том что смотреть результат программы, можно лупившись в окошко http://rghost.ru/51965024
C++ Изменить "прогон" массивов Здравствуйте. Задание по сортировке. Преподаватель, сказал, что моя программа сортирует одинаковый массив. Нужно сделать так, чтобы программа сортировал 10000 разных массивов. Программа ниже. #include "StdAfx.h" #include <iostream> #include <locale.h> #include <conio.h> #include <stdio.h> /* printf */ #include <time.h> /* clock_t, clock, CLOCKS_PER_SEC */ http://www.cyberforum.ru/cpp-beginners/thread1082793.html
Напишите программу, которая удаляет из слова X все буквы, которые встречаютьс в слове Z C++
Программа работает не правильно:( не могу понять как удалить буквы. #include <stdio.h> #include <conio.h> #include <iostream> int main() { int i,j; char mas1; char mas2;
Функция: определить, сколько раз заданное число встречается в массиве C++
Помогите, пожалуйста. Написать программу с функцией, которая определяет, сколько раз заданное число встречается в массиве.
C++ Ошибка с условиями http://www.cyberforum.ru/cpp-beginners/thread1082766.html
Проблемы с else{}оно выскакивает не тогда когда нужно. cin.ignore() не помог,хотя в похожей ситуации он пригодился. Из-за не знания я в тупике. #include <iostream> #include <locale.h> #include "std_lib_facilities.h" using namespace std; int main(){
C++ Среднее арифметическое положительных элементов массива, произведение и количество отрицательных элементов в массиве X найти среднее арифметическое положительных элементов массива, произведение и кол-во отрицательных элементов массива. подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
28.01.2014, 15:34     Удаление структуры из двусвязного списка
Примерно так:
Кликните здесь для просмотра всего текста
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
#include <iostream>
 
struct Element{
    int data;
    Element* next;
    Element* prev;
    Element(): next(NULL), prev(NULL), data(0)
    {}
    Element(int d): next(NULL), prev(NULL), data(d)
    {}
};
struct List{
    Element* head;
    Element* tail;
    List(): head(NULL), tail(NULL)
    {}
    void AddElement(int d)
    {
        Element* NewElement = new Element(d);
        if (tail == NULL && head == NULL) {
            tail = NewElement;
            head = NewElement;
        }
        else {
            NewElement->next = tail;
            tail->prev = NewElement;
            tail = NewElement;
        }
    }
    void RemoveElement(int d)
    {
         Element* temp = tail;
         while (temp!= NULL)
         {
            Element* remove = NULL;
            if (temp->data == d) {
                if (temp->prev != NULL)
                    temp->prev->next = temp->next;
                if (temp->next != NULL)
                    temp->next->prev = temp->prev;
 
                if (temp == tail)
                    tail = temp->next;
                if (temp == head)
                    head = temp->prev;
                remove = temp;
            }
            temp = temp->next;
            if (remove != NULL)
                delete remove;
         }
    }
};
int main(void)
{
    List list1;
    list1.AddElement(1);
    list1.AddElement(2);
 
    list1.AddElement(3);
    list1.AddElement(4);
    list1.AddElement(5);
    list1.AddElement(6);
 
    Element* temp = list1.tail;
    while(temp != NULL)
    {
        std::cout << temp->data << ' ';
        temp = temp->next;
    }
    std::cout << std::endl;
 
    list1.RemoveElement(5);
    list1.RemoveElement(3);
    list1.RemoveElement(6);
 
    temp = list1.tail;
    while(temp != NULL)
    {
        std::cout << temp->data << ' ';
        temp = temp->next;
    }
    std::cout << std::endl;
 
    return 0;
}

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