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

Помогите организовать односвязный список! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ с++ , курсач, почнительная записка, Rational Roze. http://www.cyberforum.ru/cpp-beginners/thread521484.html
Кто-нибудь делаал курсач по программированию?Я делаю в первый раз. нужна помощь в 4 задании и диаграммой в программе Rational Roze. Вот мой готовый курсач. Кто сможет, то помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread521184.html
C++ Цикл #include "stdafx.h" #include "conio.h" #include <iostream> #include <fstream> #include <string> using namespace std; struct main_file { int kc; int ku; int tn; http://www.cyberforum.ru/cpp-beginners/thread521477.html
C++ как реализовать программу записная книжка на си++?
Фамилия (ключевое поле, имеет уникальные, неповторяющиеся значения), Дата рождения (поле используется для отбора элементов), Номер телефона, Адрес.
C++ Перечисление в классе вызывает ошибку
#pragma hdrstop #include <iostream.h> #include <conio.h> #include <tchar.h> //--------------------------------------------------------------------------- class disk { private:
C++ В одномерном массиве , состоящем из n вещественных элементов, вычислить: http://www.cyberforum.ru/cpp-beginners/thread521464.html
сумму элементов массива, расположенных после максимального элемента. вашему вниманию представлена ниже программка, но в ней есть ошибки, укажите пожалуйста на них #include <math.h> #include <conio.h> #include <fstream.h> #include <iostream.h> #include <vcl.h> #pragma hdrstop
C++ Подсчитать количество листьев в дереве Привет. Задали курсовик =) Все сделал, осталось подсчитать количество листьев в дереве. Лист - это узел дерева, из которого не происходят никакие потомки. Короче указатели на левое и правое поддерево NULL. Как это посчитать в коде? Я так понимаю нужна рекурсия. Не понимаю чего нужно сделать. Что нибудь типа прямого обхода дерева с функцией проверки адресов указателей на поддеревья и... подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.03.2012, 16:37     Помогите организовать односвязный список!
нужно учится разбивать задачу на независимые подзадачки и в отдельных классах\функциях решать эти подзадачки. Вот как это может выглядеть с хоть каким-то разделением на функции:

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
#include<iostream>
#include<conio.h>
#include<string.h>
#include<stdlib.h> 
#include<stdio.h>
#include<windows.h>
 
using namespace std;
 
struct sportsmen
{
  char famili[30];
  char name[30];
  char vidsp[50];
  int rez;
 
  sportsmen()
    : rez(0)
  {
    famili[0] = 0;
    name[0] = 0;
    vidsp[0] = 0;
  }
};
 
ostream& operator << (ostream& out, const sportsmen& men)
{
  out << men.famili << ", " << men.name << ", " << men.vidsp << ", " << men.rez;
  return out;
}
 
struct listnode
{
  sportsmen value;
  listnode* nextNode;
 
  listnode()
    : nextNode(0)
  {
  }
};
 
void InputSportsmen(sportsmen& men)
{
  cin.sync();
  cout << "Введите фамилию: ";
  cin.getline(men.famili, 29);
  cout << "Введите имя: ";
  cin.getline(men.name, 29);
  cout << "Укажите вид спорта: ";
  cin.getline(men.vidsp,49);
  cout << "Укажите занятое место: ";
  cin >> men.rez;
  system("cls");
}
 
listnode* CreateList()
{
  int numElements = 0;
  cout << "Введите кол-во спортсменов, которое вы хотите записать в список: ";
  cin >> numElements;
 
  cout<<"Вам предстоит заполнить данные о " << numElements << " спортсменах!!!\n";
  // assert numElements > 0
 
  listnode* head = new listnode();
  listnode* tie = head;
  cout << "Ввод данных " << 1 << "-ого спортсмена\n";
  InputSportsmen(tie->value);
 
  for (int i = 1; i < numElements; ++i)
  {
    listnode* node = new listnode();
    tie->nextNode = node;
    tie = node;
 
    cout << "Ввод данных " << i + 1 << "-ого спортсмена\n";
    InputSportsmen(tie->value);
  }
 
  return head;
}
 
void PrintList(listnode& head)
{
  for (listnode* node = &head; node != 0; node = node->nextNode)
    cout << node->value << std::endl;
}
 
void DestroyList(listnode*& head)
{
  for (listnode* node = head; node != 0;)
  {
    listnode* next = node->nextNode;
    delete node;
    node = next;
  }
  head = 0;
}
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  listnode* head = CreateList();
  PrintList(*head);
  DestroyList(head);
  getch();
  return 0;
}
 
Текущее время: 11:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru