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

Реализовать односвязный список данных вида "Страна, город, количество населения" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Раскраска графа в два цвета (алгоритм BlackWhiteColoring) http://www.cyberforum.ru/cpp-beginners/thread320019.html
Здраствуйте! Хотела попросить помочь с программой. Дан неориентированный граф, его раскраска производится следующим образом: приписываем его вершинам цвета таким образом, что никакие две смежные вершины не получаются одинакового цвета. Необходимо каким-нибудь простым перебором вывести для каждой черной вершины максимальное количество белых. Т.е. получится массив, где с одной стороны будет просто...
C++ Разработка динамических структур данных и функций их обработки Длинное» целое число представляется как однонаправленный линейный список, где каждая цифра – элемент списка. Функции: • сформировать «длинное» целое число (функция формирует список из цифр числа) • вывести список (функция выводит «длинное» целое число) • сложить два «длинных» целых числа (функция получает на вход два списка и возвращает третий список, каждый элемент которого содержит цифру,... http://www.cyberforum.ru/cpp-beginners/thread320011.html
Дейкстра на куче C++
Неверно выводит путь: #include <stdio.h> #include <malloc.h> const int m=50; const int n=5; const int B=10000; struct heap {
В однородном массиве вещественных чисел три наименьших элемента заменить нулями. C++
В однородном массиве вещественных чисел три наименьших элемента заменить нулями. Использовать printf и scanf. Понимаю, что программа легкая, но помогите, пожалуйста, голова вобще не варит( Добавлено через 41 минуту это срочно, помогитеее пожалуйста!
C++ C++ x86 и x64 http://www.cyberforum.ru/cpp-beginners/thread319974.html
Есть ли в программировании в C++ x86 и x64?
C++ В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами. В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами. Помогите, пожалуйста. Хотя бы алгоритмом. подробнее

Показать сообщение отдельно
OcbMuHor
Заблокирован
17.06.2011, 01:21  [ТС]     Реализовать односвязный список данных вида "Страна, город, количество населения"
а про это. ну это не основной вопрос. думаю что с рекурсией не так сложно обстоят дела, просто устал, может кто уже писал функции подскажет. А по второму вопросу есть что?

Добавлено через 3 часа 42 минуты
короче вот готовый список с функциями. единственное, что не работает кейс удаления элемента списка. Помогите пожалуйста его подкорректировать с возможностью удалить любой элемент.
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
#include <iostream>
#include <string>
 
struct Node
{
    std::string Country;
    std::string City;
    unsigned long long int City_people;
    Node *next;
};
 
int main()
{
    unsigned short i=0, k, n, l=0;
    Node *phead = new Node();
    Node *tmp;
    tmp = phead;
    unsigned long long int count=0;
    std::string key_Country;
    long int key_City_peoiple;
    std::cout <<"The long of List: ";
    std::cin >> k;
    do
    {
        i++;
        std::cin >> tmp->Country;
        std::cin >> tmp->City;
        std::cin >> tmp->City_people;
        tmp->next = new Node();
        if (i ==k) tmp->next = NULL;
        tmp = tmp->next;
    } while (i<k);
    do
    {
        std::cout << "\nFor continuation of work pus a keychar:";
        std::cout << "\n1: For the output a list.";
        std::cout << "\n2: For the input new intem (to the end of list)";
        std::cout << "\n3: For the delete item";
        std::cout << "\n4: For the make two lists on a sign: list Country, City_people < n, ";
        std::cout << "\nand list Country, City_people >=n. after maked two lists output";
        std::cout << "\n5: For the count all people of the list";
        std::cout << "\n6: For the exit of programm" << std::endl;
        std::cin >> k;
        switch (k)
            {
                        //вывод
                case 1: for (tmp = phead; tmp != NULL; tmp = tmp->next)
                        {
                                std::cout << tmp->Country << "  " << tmp->City << "  " << tmp->City_people;
                                std::cout << std::endl;
                        } break;
                        //добавление элемента
                case 2: tmp = phead;
                        do
                        {
                            tmp = tmp->next;
                            if (tmp->next == NULL){
                                tmp->next = new Node();
                                tmp = tmp->next;
                                std::cin >> tmp->Country;
                                std::cin >> tmp->City;
                                std::cin >> tmp->City_people;
                                tmp->next = NULL;
                            }
                        } while (tmp->next!= NULL);
                        break;
                        //удаление элемента
                case 3: std::cout << "\nPlease select a nomber of list you want to delete" << std::endl;
                        std::cin >> n;
                        i=0;
                        for (tmp = phead; tmp != NULL; tmp = tmp->next)
                        {
                            i++;
                            if (i == n-1){
                                if (tmp != NULL){
                                    if (tmp == phead){
                                        phead = tmp->next;
                                        delete (tmp);
                                        tmp = phead; break;
                                    }
                                    else{
                                        Node *tmp1 = new Node();
                                        tmp1->Country = (tmp->next)->Country;
                                        tmp1->City = (tmp->next)->City;
                                        tmp1->City_people = (tmp->next)->City_people;
                                        tmp->next = (tmp->next)->next;
                                        tmp = tmp1;
                                        delete (tmp1); break;
                                    }
                                }
                                else break;
                            }
                        };
                        break;
                        //вывод двух списков по признаку: Страна: города с населением <n, города с населением >= n
                case 4: std::cout << "\nPlease select a key from country: ";
                        std::cin >> key_Country;
                        std::cout << "\nPlease select a key from City people amount: ";
                        std::cin >> key_City_peoiple;
                        std::cout <<"\nOutput List where people of Cities < " << key_City_peoiple;
                        std::cout << std::endl;
                        for (tmp = phead; tmp!=NULL; tmp=tmp->next)
                        {
                                if (tmp->Country == key_Country){
                                    if (tmp->City_people < key_City_peoiple){
                                        std::cout << tmp->Country << "  " << tmp->City << "  ";
                                        std::cout << tmp->City_people << std::endl; 
                                    }
                                }
                        }
                        std::cout <<"\nOutput List where people of Cities >= " << key_City_peoiple;
                        std::cout << std::endl;
                        for (tmp = phead; tmp!=NULL; tmp=tmp->next)
                        {
                            if (tmp->Country == key_Country){
                                if (tmp->City_people >= key_City_peoiple){
                                    std::cout << tmp->Country << "  " << tmp->City << "  ";
                                    std::cout << tmp->City_people << std::endl; 
                                }
                            }
                        }
                        break;
                        //подсчет всех жителей в списке
                case 5: std::cout << "\n5: The count all people of the list is: ";
                        for (tmp = phead; tmp != NULL; tmp = tmp->next)
                        {
                            count = count + tmp->City_people;
                        }
                        std::cout << count << std::endl;
                        //выход из программы
                case 6: break;
                        //сообщение об ошибке при вводе ключа
                default: std::cout << "Mabe you mistake? please, try again." <<std::endl;
        }
    } while (k!=6);
return 0;
}
 
Текущее время: 15:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru