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

Необходимы пояснения по коду - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ описание программы http://www.cyberforum.ru/cpp-beginners/thread426595.html
#include <stdio.h> #define MIN(a, b) ( (a) > (b) ? (b) : (a) ) #define MAX(a, b) ( (a) < (b) ? (b) : (a) ) #define MIN3(a, b, c) ( MIN(MIN((a), (b)), (c)) ) #define MAX3(a, b, c) ( MAX(MAX((a), (b)), (c)) ) #define MIDDLE(a, b, c) ( (a) == MAX3((a), (b), (c)) ? MAX((b), (c)) : (a) == MIN3((a), (b), (c)) ? MIN((b), (c)) : (a) ) int main(void){ int a, b, c;
C++ Создание прошитого бинарного дерева есть файл fIn.txt A BC D_IF ___L то есть _ значает что потомка нет (например у B потомок только B, второго нет); , информация может быть какой угодно. Вопрос КаК построить это дерево если допустим я написал класс http://www.cyberforum.ru/cpp-beginners/thread426564.html
Определить номер той строки, в которой больше всего согласных букв C++
Переведите, пожалуйста: Uses CRT; Var f,f2:text; s,s2:string; i,l,n1,n2,n,max,ind,c:integer; begin Assign(f,'D:\1.txt'); Assign(f2,'D:\2.txt');
C++ найти точку, принадлежащую
дано множество отрезков на прямой. найти точку, которая принадлежит наибольшему количеству отрезков, определить это количество
C++ найти первые N целых чисел http://www.cyberforum.ru/cpp-beginners/thread426561.html
найти первые N целых чисел, у которых младший байт является зеркальным отражением следующего байта
C++ массивы сортировка простая сортировка обменами. напишите плиз.. подробнее

Показать сообщение отдельно
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
12.01.2012, 01:22
Ну я насколько понял, есть очередь элементов типа Node
C++
1
2
3
4
struct Node {
 Type elem
 Node* next
}
Эта функция добавляет элемент val в хвост этой очереди (на самом деле в ховст добавляется не val, а Node, с полем elem, равным val)

tail Это указатель на хвост очереди, судя по всему
Пусть очередь такая: ABCD, где A это голова, D Это хвост. Судя по всему, в каждом элементе поле next указывает на соседний элемент, котоый ближе к хвосту.Тогда C.next указывает на D. Теперь мы в хвост добавляем E, значит надо сделать так, чтобы D.next указыывало на E. Каким образом? Надо написать так:
C++
1
D.next= адрес E
D, это хвост, tail указывает на хвост очереди. Поэтому можно записать так:
C++
1
tail->next= адрес E
E был создан такой операцией:
C++
1
new Node
Его адрес содержится в переменной Temp, поэтому пишем:
C++
1
tail->next= TEMP
ИТак, мы добились, что D.next указывает на E

Ну, а теперь, коль скоро хвост очереди теперь стал E, меняем значение tail
C++
1
tail= Temp
Других объяснений у меня нет.

Открытым остаётся вопрос, а куда щас указывает D.next? Хорошо бы этому полю, присваивать NULL, раз это хвост очереди, ну да это их уже дело.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru