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

Ошибка в двусвязном списке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что получится из кода http://www.cyberforum.ru/cpp-beginners/thread815601.html
Необходимо описать результат выполнения программы: 1) 2) 3) 4) 5)
C++ написать программу перевода введенного символа написать программу перевода введенного символа от a до f в верхний регистр, а другие символы заменять на Z http://www.cyberforum.ru/cpp-beginners/thread815600.html
C++ Написать программу проверки попадания введенного числа в диапазон
написать программу проверки попадания введенного числа в диапазон от -6 до -2
2 символа s2 последние и средние 3 символа s1 - соединить C++
Помогите пожалуйста! Ввести строки s1 и s2. Последние 2 символа s2 и средние 3 символа s1 - соединить. В полученной строке посчитать количество "1". Выводить на екран монитора: -введенные строки -Промежуточные результаты -Конечные результаты Взять во внимание такие ситуации: - Один из заданных строк(или все строки) могут быть пустыми
C++ Как изменить размер главного окна в visual studio 2005? http://www.cyberforum.ru/cpp-beginners/thread815564.html
Как изменить размер главного окна в visual studio 2005?
C++ Разработать программу «Численное интегрирование» Разработать программу «Численное интегрирование» различными методами: 1) по формуле трапеций; 2) по формуле Гаусса; 3) по формуле Чебышева помогите пожалуйста решить. за ранее благодарю подробнее

Показать сообщение отдельно
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
23.03.2013, 00:14     Ошибка в двусвязном списке
zepterman, вот посмотрите, я не совсем разобрался в той части кода что вы предоставили, я сделал очередь с тремя видами приоритета

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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
// obr.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <locale>
using namespace std;
 
struct Queue
{
    int data;
    int prioritet;              //1,2,3 
    Queue *next, *pred;
};
 
class QueueNode
{
    private:
        Queue *Head, *Tail;
 
    public:
        QueueNode()
        {
            Head = Tail = NULL;
        }
 
        void add(const int value, const int _prior)             
        {                                                   
            Queue *Ptr = new Queue;
            Ptr -> data = value;
            Ptr -> prioritet = _prior;
 
            if(Head == NULL)
            {
                Head = Tail = Ptr;
                Ptr -> pred = NULL;
                Ptr -> next = NULL;
            }
            else
            {
                Queue *tmp = Tail;
                Queue *cur = NULL;
 
                if(Head != Tail)
                {
                    while((tmp != NULL) && (Ptr -> prioritet > tmp -> prioritet))
                    {
                        cur = tmp;
                        tmp = tmp -> pred;
                    }
 
                    if(tmp == NULL)
                    {
                        Ptr -> next = Head;
                        Ptr -> pred = NULL;
                        Head -> pred = Ptr;
                        Head = Ptr;
                    }
                    else
                    {
                        tmp -> next = Ptr;
                        Ptr -> pred = tmp;
                        Ptr -> next = cur;
                    }
                }
                else
                {
                    if(Head -> prioritet < Ptr -> prioritet)
                    {
                        Head -> pred = Ptr;
                        Ptr -> next = Head;
                        Ptr -> pred = NULL;
                        Head = Ptr;
                    }
                    else
                    {
                        Tail -> next = Ptr;
                        Ptr -> pred = Head;
                        Ptr -> next = NULL;
                        Tail = Ptr;
                    }
                }
            }
        }
 
        void delQueue()
        {
            Queue *tmp = Head;
            Queue *cur = NULL;
 
            if(Head != NULL)
            {
                cur = Head -> next;
                cur -> pred = NULL;
                delete Head;
                Head = cur;
            }
        }
 
        void showQueue()
        {
            Queue *temp = Head;
 
            if(Head != NULL)
            {
                while(temp != NULL)
                {
                    cout << temp -> data << " ";
                    temp = temp -> next;
                }
            }
            else
                wcout << L"Очередь пуст!\n";
        }
};
 
void instructions();
void menu();
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));
    wcin.imbue(locale(".866"));
 
    menu();
 
    cout << "\n\n";
    return 0;
}
 
void instructions()
{
    wcout << L"Выберите пункт меню: " <<
        L"\n1 - Добавить элемент" <<
        L"\n2 - удалить элемент" <<
        L"\n3 - Выход.\n";
}
 
void menu()
{
    QueueNode Universal;
    int punkt_menu, value, prior;
 
    instructions();
 
 
    do{
        wcout << L"\n? ";
            cin >> punkt_menu;
 
            switch(punkt_menu)
            {
                case 1:
                    wcout << L"Введите число: ";
                        cin >> value;
                    wcout << L"Введите приоритет(1-3): ";
                        cin >> prior;
 
                    Universal.add(value, prior);
                    Universal.showQueue();
                    break;
                case 2:
                    Universal.delQueue();
                    Universal.showQueue();
                    break;
 
            }
 
    }while(punkt_menu != 3);
}
 
Текущее время: 21:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru