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

Рекурсивный обход НЕбинарного дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как узнать отсортирован ли массив.(Функции) http://www.cyberforum.ru/cpp-beginners/thread962620.html
Даны 3 одномерных массива разной длины. Какие массивы после перестановки первого и последнего элементов станут отсортированными по убыванию.
C++ Вывод матрицы WinAPI Есть матрица. Она может большой (100 х 100). Есть окно с колесами прокрутки. Каким средством WinAPI в этом окне вывести матрицу? listbox не катит, TextOut, DrawText - вроде тоже. http://www.cyberforum.ru/cpp-beginners/thread962616.html
Классы (объединить мой класс с проверкой на его работу, убрать гото и добавить конструктор копирования) C++
Доброго времени суток. Подскажите как обьеденить мой класс с проверкой на его работу, убрать гото(заменить на что-то другое и добавить конструктор копирования. #include <iostream> #include <cstring> #include <algorithm> using namespace std; class CStation {
запутался в алгоритме создания массива C++
Код. Программа должна нарисовать точки, так как описано в массиве, проблема в том что, она рисует точки только использует еще точку 450, хотя он не должен его исопльзовать, так как координата 450 указывает на число 0, а в программе написано рисовать точки только когда цифра 1 найдена #include <GL\glut.h> int w=500, h=500; int mas= { 1,1,1,1,1,1,1,1,1,1, 1,0,0,0,0,0,0,0,0,1,...
C++ Приведение типов в GetFileList http://www.cyberforum.ru/cpp-beginners/thread962609.html
Использую нижеприведенный код (немного переделанный под мои нужды), найденный на форуме для прохода по файловой системе. Но ругается студия на несоответствие типов. А именно: argument of type "WCHAR *" is incompatible with parameter of type "const char * argument of type "LPTSTR" is incompatible with parameter of type "const char * Как было бы верно их здесь привести ? void...
C++ В чем ошибка? Динамические массивы Дан массив целых чисел из n элементов. Вставить нуль после первого нечетного элемента и единицу перед последним четным элементом. #include <cstdlib> #include <iostream> #include <stddef.h> using namespace std; int main(int argc, char *argv) { int *a,*b; подробнее

Показать сообщение отдельно
oodessit
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 36

Рекурсивный обход НЕбинарного дерева - C++

26.09.2013, 05:15. Просмотров 617. Ответов 3
Метки (Все метки)

Имеется функция, которая рекурсивно обходит одну папку.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void GetFileList(LPTSTR sPath, Object* fsParser) {
 
    WIN32_FIND_DATA pFILEDATA;
 
    HANDLE hFile = FindFirstFile(wcscat(sPath,L"\\*.*"),&pFILEDATA);
 
    sPath[wcslen(sPath) - wcslen(wcswcs(sPath,L"*.*"))] = '\0';
 
    if (hFile!=INVALID_HANDLE_VALUE)    {
        char * chBuf;
        do {
            if (wcslen(pFILEDATA.cFileName) == 1 &&  wcschr(pFILEDATA.cFileName,L'.') !=NULL)
                if (FindNextFile(hFile,&pFILEDATA) == 0)
                    break;
            if (wcslen(pFILEDATA.cFileName) == 2 && wcsstr(pFILEDATA.cFileName,L"..") !=NULL)
                if(FindNextFile(hFile,&pFILEDATA) == 0)
                    break;
            if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
 
              
                Object* foundFolder = new Folder;
                fsParser.add(foundFolder);
 
                GetFileList(wcscat(sPath,pFILEDATA.cFileName), foundFolder);
                sPath[wcslen(sPath) - wcslen(pFILEDATA.cFileName)- 1] = '\0';
            }
            else {
           
                Object* foundFile = new Folder;
                fsParser.add(foundFile);
            }
        }
        while (FindNextFile(hFile,&pFILEDATA));
    }
}

Не могу догнать, как заставить его обходить все дерево, параллельно вытягивая атрибуты из файлов. Думаю воспользоваться GetFileAttributes. Дерево НЕбинарное (о них инфы в инете полно). Прошу помочь с алгоритмом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru