2012-05-07 4 views
2

Я создаю свое дерево, используя функцию чтения, которая использует цикл while для извлечения строк из текстового файла, в этом цикле я создаю узел, а затем использую метод insert для вставки узла в правильный место в дереве.Анализ двоичного дерева поиска

Для моего конструктора копирования я делаю что-то подобное, передаю в корневую часть вспомогательную функцию, немного похожую на мою функцию вставки, а затем копирую имя узла, переданного узлу в функции. выглядит примерно так:

newNode->name = pNode->name;   
newNode->left = copyConstructorHelper(pNode->left);    
newNode->right = copyConstructorHelper(pNode->right); 

Затем я возвращаю новый узел.

После запуска выборки, встроенной в визуальную студию, метод чтения использует% 36 процентов от объема памяти, в то время как конструктор копирования использует только% 4. Это огромная разница, может кто-нибудь объяснить, почему, пожалуйста?

+2

Просьба указать исходный код вашего метода чтения и copyConstructorHelper с несвязанным кодом. –

+0

Я описал, что я сделал, вместо того, чтобы вводить код, поскольку это назначение, и я не должен делиться кодом, пока он не был помечен – dev6546

ответ

1

Часть, скорее всего, файл IO; сделайте версию вашего первого метода, которая получает свои данные из строки (или массива того же самого) и видит, какая разница.

Смежные вопросы