trollondinner
1

Формирование списка и работа с ним

27.09.2012, 15:47. Показов 794. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задали написать программу на с++. Написал её, а точнее составил из разных кусков, которые были даны на семинаре. Программа работает, но ,к сожалению, я не могу объяснить преподавателю как и что работает.
Что то подписал, а остальное не знаю как.( Выделено комментариями, что не могу объяснить) Помогите пожалуйста.
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
#include <iostream>
using namespace std;
struct node { int info; 
struct node *next;
}; 
// [ЭТО]
int countOfE(node *list, int E) {
node *iter = list;
int count = 0;
while (iter != NULL) {
if (iter->info == E)
count++;
iter = iter->next;
// [/ЭТО]
}
return count;
}
void main()
{
typedef node *NodePtr; // указатель на тип node
NodePtr head = NULL;
NodePtr p;// указатель на текущий элемент
NodePtr tail;// указатель на "хвост" очереди
int N = 10; // количество элементов в очереди
int cnt = 1;// счетчик элементов в очереди
 
// [ЭТО]
if (head == NULL)
{ head = new node;
head->info = rand()%100 - 50;
head->next = NULL;
tail = head;
}
for (int i = 2; i<=N; i++)
{ p = new node;
p->info = rand()%100 - 50;
tail->next = p;
p->next = NULL;
tail = p;
}
// Вывод очереди на экран
p = head;
for (int i = 1; i<=N; i++)
{ cout << p->info << ' ';
p = p->next;
// [/ЭТО]
}
cout <<endl;
int E;
cin >> E;
cout << "Kol vo chisel ravnoe vvedennomy " << countOfE(head, E) << endl;
return;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2012, 15:47
Ответы с готовыми решениями:

Переделать формирование рваного массива в двумерный и работа с ним
1) Создать двумерный массив типа char a. При помощи СВЧ b. Элементы вводятся с клавиатуры ...

Работа с элементами ComboBox в DataGridView: формирование списка в зависимости от условия
Приветствую. Снова нужна ваша профессиональная помощь. Дата грид. Допустим есть 2 столбца. Один...

После каждого элемента списка добавьте ту часть списка, которая была перед ним
Пусть дан список. После каждого элемента списка добавьте ту часть списка, которая была перед ним.

Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N
люди помогите пожалуйста!!! Формирование списка с остатками от деления целых чисел из исходного...

1
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.09.2012, 01:30 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// функция, которая возвращает количество элементов в очереди со значением info равным E
 int countOfE(node *list, int E) // в функцию передаётся указатель на начало очереди и значение E
 {
 node *iter = list; // указатель на начало очереди
 int count = 0; // счётчик
 while (iter != NULL) // перебор элементов очереди
 {
    if (iter->info == E) // если найден элемент со значением info равным E, то увеличиваем счётчик
        count++;
    iter = iter->next; // переход к следующему элементу
 }
 return count; // возвращаем количество найденных элементов
 }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// создание очереди
if (head == NULL) // если очередь пустая
 { 
    head = new node; // первый элемент становится в голове очереди
    head->info = rand()%100 - 50; // присваиваем значение первому элементу
    head->next = NULL; // первый элемент указывает на NULL (значит он последний)
    tail = head; // хвост и голова очереди пока совпадают
 }
 for (int i = 2; i<=N; i++) // добавляем N - 1 элемент в очередь
 { 
    p = new node; // новый элемент 
    p->info = rand()%100 - 50; // присваиваем значение новому элементу
    tail->next = p; // предыдущий элемент будет указывать на новый элемент
    p->next = NULL; // новый элемент будет указывать на NULL (значит он последний)
    tail = p; // новый элемент в хвост очереди
 }
 // Вывод очереди на экран
 p = head; // p указывает на начало очереди
 for (int i = 1; i<=N; i++) // перебор N элементов очереди 
 { 
    cout << p->info << ' '; // вывод значения info элемента очереди
    p = p->next; // p указывет на следующий элемент очереди
 }
0
28.09.2012, 01:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2012, 01:30
Помогаю со студенческими работами здесь

Формирование списка, состоящего из списка самого низшего уровня
Написать программу формирования списка, состоящего из списков самого низшего уровня для заданного...

Формирование случайного массива и действия над ним
Сформировать случайным образом массив из 20 элементов. Найти максимальный и минимальный элементы...

Дублирование вхождения каждого элемента списка One и формирование из этих значений списка Double (пояснить условие)
Здравствуйте. Вот собственно само задание: В составе программы описать функцию, которая дублирует...

Формирование списка из N первых элементов исходного списка
Предикат proc выводит первые N элементов исходного списка. Как его переделать, чтобы он не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru