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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как считать файл и обработать содержимое http://www.cyberforum.ru/cpp-beginners/thread831792.html
Создать массив структур. Каждая структура состоит из следующих элементов: фирма, продукт, который производит фирма. Для фирмы задать ее название, название города. Для продукта задать его название количество, цену единицы продукта. Создан массив записать в бинарного файла. Предусмотреть возможность дополнить файл, заменить данные в файле, удалить данные из файла. Реализовать запросы: 1) определить...
C++ Бинарное дерево поиска (определить максимальную глубину) Всем привет! Делаю лабу, написал основу, но не могу понять, как сделать последний пункт задания, нужно определить максимальную глубину сформированного дерева, т.е. число ветвей в самом длинном из путей от корня дерева до листьев. вот код программы которую написал, что то конечно брал из интернета: #include <stdio.h> #include <time.h> #include <stdlib.h> #include <iostream> using namespace... http://www.cyberforum.ru/cpp-beginners/thread831789.html
C++ Подключение файлов
Как правильно соединить такие 3 файла: main_doc.cpp (файл с главной функцией, с которого все собственно и начинается) gamer.cpp(файл с классом) gamer.h(заголовочный файл класса). Что и где мне нужно инклудить. Где использовать #ifndef и #endif?
C++ Цикл с предусловием, печать текста
Добрый вечер, господа программисты :) Помогите решить задачу - Если в текст входит любая буква из слова KEY, напечатать yes, иначе no. Вот что я набросал: // 10_1_14.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <conio.h> #include <locale> #include <iostream> #include <stdio.h>
C++ Определяет в каждом предложении текста количество символов, отличных от букв и пропуска http://www.cyberforum.ru/cpp-beginners/thread831749.html
Я не знаю что надо добавлять, помогите пожалуйста! Вот код #include "stdafx.h" #include <iostream> #include <fstream> #include "locale.h" #include <stdio.h> #include <string.h> #include <windows.h> #include <iomanip>
C++ Программа на C++ Где ошибка? Ребята! Добавил в программу класс Getraenk(напитки). Она не хочет работать. Что сделал неправильно? #include <iostream> #include <cmath> using namespace std; //die Vereinbarung der Klasse muenzeinheit class muenzeinheit подробнее

Показать сообщение отдельно
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
08.04.2013, 20:49     Односвязный список: уничтожить н-ный эл-т и на его место поместить эл-т, нр которого хранится в н-ном эл-те
w0nder,

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
#include <iostream>
#include <iomanip>
#include <locale>
using namespace std;
 
struct List
{
    int data;
    List *next;
};
 
class ListNode
{
    private:
        List *Head;
 
    public:
        ListNode()
        {
            Head = NULL;
        }
 
        void addToBack(const int value)                 //добавление в конец
        {
            List *Ptr = new List;
            Ptr -> data = value;
 
            if(Head == NULL)
            {
                Head = Ptr;
                Ptr -> next = NULL;
            }
            else
            {
                List *temp = Head;
 
                while(temp -> next != NULL)
                    temp = temp -> next;
                
                temp -> next = Ptr;
                Ptr -> next = NULL;
            }
        }
 
        void delete_N_Elem(const int value)
        {
            int count_f(0);
            List *Ptr = Head, *temp(NULL);
 
            while(Ptr != NULL && count_f != value)
            {
                temp = Ptr;
                Ptr = Ptr -> next;
                ++count_f;
            }
 
            if(Ptr != NULL)
            {
                List *tmp = Head;
                int number(Ptr -> data), count_s(0);
 
                while(tmp != NULL && count_s != number)
                {
                    tmp = tmp -> next;
                    ++count_s;
                }
 
                if(count_s == number)
                    temp -> data = tmp -> data;
            }
        }
 
        void delList()
        {
            List *tmp = Head;
            List *cur = NULL;
 
            if(Head != NULL)
            {
                while(tmp != NULL)
                {
                    cur = tmp -> next;
                    delete tmp;
                    tmp = cur;
                }
            }
 
            Head = NULL;
        }
 
        void showList()
        {
            List *temp = Head;
 
            if(Head != NULL)
            {
                while(temp != NULL)
                {
                    cout << temp -> data << " ";
                    temp = temp -> next;
                }
            }
            else
                wcout << L"Список пуст!\n";
        }
};
 
void instructions();
void menu(ListNode &);
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));
    wcin.imbue(locale(".866"));
 
    ListNode list1;
    menu(list1);
 
    cout << "\n\n";
    return 0;
}
 
void instructions()
{
    wcout << L"Выберите пункт меню: " <<
        L"\n1 - Добавить элемент в начало" <<
        L"\n2 - Замена элемента" <<
        L"\n3 - Уничтожить список" <<
        L"\n4 - Выход.\n";
}
 
void menu(ListNode &Universal)
{
    int punkt_menu, value;
 
    instructions();
 
    do{
        wcout << L"\n? ";
            cin >> punkt_menu;
 
            switch(punkt_menu)
            {
                case 1:
                    wcout << L"Введите число: ";
                        cin >> value;
 
                    Universal.addToBack(value);
                    Universal.showList();
                    break;
                case 2:
                    wcout << L"Введите номер элемента: ";
                        cin >> value;
 
                    Universal.delete_N_Elem(value);
                    Universal.showList();
                    break;
                case 3:
                    Universal.delList();
                    Universal.showList();
                    break;
            }
 
    }while(punkt_menu != 4);
 
    cout << "\n";
}
 
Текущее время: 08:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru