C & C++ - учебная задача : трансляция страниц

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: C & C++ - учебная задача : трансляция страниц

Непрочитанное сообщение Olej » 01 сен 2021, 16:45

Olej писал(а):
01 сен 2021, 16:43
И если теперь на C++ мы можем объекты (деревья) RtNode создавать произвольно (локальными или динамически), то классу нужно бы добавить и деструктор:
Выглядит это так:

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/tree$ make tree++
g++ -Wall -pedantic -std=c++14 tree++.cc -D NUM=4 -o tree++

Код: Выделить всё

olej@R420:~/2021/OWN_TEST.codes/tree$ ./tree++
4 => 8 => 256 : маска 0x000000ff
root: => 0x55a77cf772c0
добавить: ключ 0x010203ff - значение 0x1:
[0] 255 : [0x55a77cf772c0 + 0x7f8 = 0x55a77cf78aa8] => 0x55a77cf77af0
[1] 003 : [0x55a77cf77af0 + 0x018 = 0x55a77cf77b38] => 0x55a77cf78320
[2] 002 : [0x55a77cf78320 + 0x010 = 0x55a77cf78350] => 0x55a77cf78b50
[3] 001 : [0x55a77cf78b50 + 0x008 = 0x55a77cf78b68] => 0x1
размер=1 | узлов=4
---------------------------
добавить: ключ 0x020203ff - значение 0x2:
[0] 255 : [0x55a77cf772c0 + 0x7f8 = 0x55a77cf78aa8] => 0x55a77cf77af0
[1] 003 : [0x55a77cf77af0 + 0x018 = 0x55a77cf77b38] => 0x55a77cf78320
[2] 002 : [0x55a77cf78320 + 0x010 = 0x55a77cf78350] => 0x55a77cf78b50
[3] 002 : [0x55a77cf78b50 + 0x010 = 0x55a77cf78b80] => 0x2
размер=2 | узлов=5
---------------------------
добавить: ключ 0x010303ff - значение 0x3:
[0] 255 : [0x55a77cf772c0 + 0x7f8 = 0x55a77cf78aa8] => 0x55a77cf77af0
[1] 003 : [0x55a77cf77af0 + 0x018 = 0x55a77cf77b38] => 0x55a77cf78320
[2] 003 : [0x55a77cf78320 + 0x018 = 0x55a77cf78368] => 0x55a77cf79380
[3] 001 : [0x55a77cf79380 + 0x008 = 0x55a77cf79398] => 0x3
размер=3 | узлов=7
---------------------------
ищем: 0x010203FF => 0x1
ищем: 0x020203FF => 0x2
ищем: 0x010303FF => 0x3
ищем: 0x01020304 => (nil)
ищем: 0x010203FE => (nil)
ликвидация дерева, удаляется: 0x55a77cf78b50 0x55a77cf79380 0x55a77cf78320 0x55a77cf77af0 0x55a77cf772c0 
Рекурсивный обход дерева с удалением ветвей... проверка: число удаляемых (слоёв, векторов) = "узлов" - "размер" + 1 ... +1 возникает за счёт root слоя ( root = new vector<void*>(L, NULL); ).

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей