Как я объявляю отладку только оператор

Вы можете выполнять такие операции за линейное (O (n)) время. Чтобы сделать это, вы должны сохранить свой график в виде списка смежности

. Вы можете либо преобразовать дерево (используя обход DFS) один раз, либо просто сохранить график изначально как список, а не как дерево. .

Вы можете легко найти человека в списке смежности за линейное время (или даже постоянное время O (1), если вы будете использовать hashMap / hashTable / dictionary), а также его связи.

В противном случае вам придется выполнить обход DFS и сохранить список (набор) посещенных узлов, чтобы избежать циклов. В зависимости от того, какую структуру данных вы будете использовать для посещенного списка, вы можете иметь различные сложности - от O (n) до O (n ^ 2). Но во всех случаях вам потребуется 2n памяти В КАЖДОМ ПУТЕШЕСТВИИ (например, если у вас есть несколько поисков, которые будут выполняться параллельно).

38
задан omid 21 July 2019 в 09:20
поделиться

3 ответа

Символ NDEBUG уже должен быть определен для Вас в сборках режима выпуска

#ifndef NDEBUG
/* Debug only code */    
#endif 

При помощи NDEBUG, Вы просто избегаете необходимости указывать аргумент ОТЛАДКИ-D компилятору сами для сборок отладки

44
ответ дан ShuggyCoUk 27 November 2019 в 03:03
поделиться

Можно использовать

#ifdef DEBUG
    ....
#endif

, необходимо будет добавить DEBUG=1 к определениям символа препроцессора проекта в настройках Настройки отладочного процесса, поскольку это не сделано для Вас автоматически XCode.

я лично предпочитаю делать DEBUG=1 по проверке NDEBUG=0, так как последний подразумевает, что конфигурация сборки по умолчанию с отладочной информацией, которую затем необходимо явно выключить, тогда как 'DEBUG=1' подразумевает включение , отладка только кодирует.

66
ответ дан Alnitak 27 November 2019 в 03:03
поделиться

Существует очень полезная отладка technote: Mac OS X TN2124 Технического примечания, Отлаживающий Волшебство http://developer.apple.com/technotes/tn2004/tn2124.html#SECENV , который содержит много полезного материала для отладки Ваших приложений.

Tony

5
ответ дан AnthonyLambert 27 November 2019 в 03:03
поделиться