Форум программистов, компьютерный форум 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++ Builder Стек: функция удаления и переприсвоение массива (Builder 6) И еще, одна проблема, как всегда стек=/ Ребятки, помогите чем можете, пожалуйста- я замучалась.. есть задача на стек в архиве(сделана и работает) но есть одно но! Мне надо переделать функцию удаления элемента стека=( void udal(TStek & s) { // уменьшаем количество при наличии элементов if(s.kol>0) http://www.cyberforum.ru/cpp-beginners/thread426565.html
C++ создание прошитого бинарного дерева
есть файл fIn.txt A BC D_IF ___L то есть _ значает что потомка нет (например у B потомок только B, второго нет); , информация может быть какой угодно. Вопрос КаК построить это дерево если допустим я написал класс
Определить номер той строки, в которой больше всего согласных букв 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++ найти точку, принадлежащую http://www.cyberforum.ru/cpp-beginners/thread426562.html
дано множество отрезков на прямой. найти точку, которая принадлежит наибольшему количеству отрезков, определить это количество
C++ найти первые N целых чисел найти первые N целых чисел, у которых младший байт является зеркальным отражением следующего байта подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,299
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, раз это хвост очереди, ну да это их уже дело.
 
Текущее время: 14:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru