Как сделать файловую структуру в виде дерева

Добавил пользователь Владимир З.
Обновлено: 09.09.2024

Я ищу (переносимое) программное обеспечение или сценарий, который позволил бы мне нарисовать определенную файловую структуру в виде дерева в Windows XP. Очень похоже на DOS tree команда, но "красивее" (в виде графика или диаграммы)

Я уже пробовал TreeSize, но это не соответствует моим потребностям, так как он не предлагает никаких опций экспорта или графических настроек.

Я использую программу командной строки под названием "Точка" для рисования древовидных структур. Для этого создается текстовый файл, определяющий каждый файл или папку как уникальный узел и связи между ними (от родителя к потомку)

оно может вывести наружу чертеж как PDF, SVG, PNG, JPG, etc.

вот пример входного файла для программы "Точка" (имя файла "испытание.dot"):

сделать это в PDF-файл, выполните команду:

эта программа делает отличные рисунки деревьев файлов (или любой структуры дерева / графика). Часть, которая требует наибольшей работы, делает ввод *.точечный файл. Обычно я пишу сценарий, чтобы просмотреть дерево файлов и вывести текстовый файл, отформатированный аналогично " test.точка" выше. Убедитесь, что все имена узлов уникальны (даже если имя метки / файла / папки совпадает). Еще одна полезная вещь знать, каждая строка в *.файл точка может прийти практически в любом порядке - если есть дубликаты, последний будет перекрывать предыдущие.

Коммуникативный педагогический тренинг: способы взаимодействия с разными категориями учащихся

Сертификат и скидка на обучение каждому участнику

Афанасьева Мария

Описание презентации по отдельным слайдам:

Дерево каталогов Задание №4 Учитель – Богачёва Г.В. Лицей № 144 Санкт-Петербурга

Пользователь работал с каталогом C:\Физика\Задачи\Механика. Сначала он поднялся на один уровень вверх, затем ещё раз поднялся на один уровень вверх и после этого спустился в каталог Экзамен, в котором находится файл Вопросы.doc. Каков путь к этому файлу? Решение: Задача 1 C: Физика Задачи Пользователь работал с каталогом Механика Поднявшись на один уровень вверх он оказался в каталоге: Поднявшись ещё на один уровень вверх он оказался в каталоге: После этого он спустился в каталог Экзамен: Экзамен Полный путь к файлу имеет вид: C:\Физика\Экзамен.

Задача 2 Учитель работал в каталоге D:\Уроки\7 класс\Практические работы. Затем перешёл в дереве каталогов на уровень выше, спустился в подкаталог Презентации и удалил из него файл Введение.ppt. Каково полное имя файла, который удалил учитель? Решение. Пользователь работал с каталогом: Поднявшись на один уровень вверх он оказался в каталоге: Спустившись на один уровень вниз он оказался в каталоге Презентации: В каталоге Презентации он удалил файл Введение. Полное имя удалённого файла: D:\Уроки\7 класс\Презентации\Введение.ppt Уроки 7 класс D: Практические работы Презентации

Пользователь работал с каталогом Школа. Сначала он поднялся на один уровень вверх, затем ещё раз поднялся на один уровень вверх, а потом спустился на один уровень вниз. В результате он оказался в каталоге С:\Катя\Информатика. Каким может быть полный путь каталога, с которым пользователь начинал работу? 1) С:\Школа\Катя\Информатика 2) С:\Школа 3) С:\Программирование\Школа 4) С:\Катя\Информатика\Школа Решение: Задача 3 Ответ: 4 Из каталога С:\Катя\Информатика выполняем действия в обратном порядке – 1 раз вверх (каталог Катя), 1 раз вниз и ещё раз вверх, значит, выше каталога Катя не поднялись, и путь должен начинаться с С:\Катя. Подходит только ответ 4. C: Школа Информатика Катя

Перемещаясь из одного каталога в другой, пользователь последовательно посетил каталоги Project, Scheme, Device, C:\, Install, Local. При каждом перемещении пользователь либо спускался в каталог на уровень ниже, либо поднимался на уровень выше. Каково полное имя каталога, из которого начал перемещение пользователь? C:\Install C:\Install\Local C:\Project\Scheme\Device C:\Device\Scheme\Project Решение: Задача 4 Ответ: 4 Пользователь последовательно посетил каталоги Project, Scheme, Device, C:\, Install, Local. C:\ - корневой каталог, значит, дерево каталогов выглядит так, как на рисунке. Правильный ответ – 4. C: Project Scheme Local Device Install

Пользователь работал с каталогом Лето. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\Фото\Экскурсии\Псков Запишите полный путь каталога, с которым пользователь начинал работу. 1) C:\Лето 2) C:\Фото\Лето 3) C:\Фото\Тула\Лето 4) C:\Фото\Экскурсии\Лето Решение: Задача 5 Ответ: 2 Из каталога C:\Фото\Экскурсии\Псков выполняем действия в обратном порядке – 2 раза вверх (каталог Фото) и 1 раз вниз- каталог Лето. Полный путь каталога - C:\Фото\Лето C: Экскурсии Фото Псков Лето

Пользователь работал с каталогом Логика. Сначала он поднялся на один уровень вверх, затем поднялся ещё на один уровень вверх, потом спустился на один уровень вниз. В результате он оказался в каталоге C:\Школа\Уроки\Химия. Запишите возможный полный путь каталога, с которым пользователь начинал работу. 1) C:\Школа\Уроки\Информатика\Логика 2) C:\Школа\Уроки\Логика 3) C:\Школа\Логика 4) C:\Школа\Информатика\Логика Решение: Задача 6 Ответ: 1 Из каталога C:\Школа\Уроки\Химия выполняем действия в обратном порядке – 1 раз вверх (каталог Уроки) и 2 раза вниз - из каталога Уроки это возможно только в случае C:\Школа\Уроки\Информатика\Логика C: Инфор-матика Уроки Химия Школа Логика

Пользователь находился в каталоге Расписание. Сначала он поднялся на один уровень вверх, затем спустился на один уровень вниз, потом ещё раз спустился на один уровень вниз и ещё раз спустился на один уровень вниз. В результате он оказался в каталоге C:\учёба\информатика\ГИА Укажите полный путь каталога, с которым пользователь начинал работу. 1) C:\учёба\2013\Расписание 2) C:\учёба\Расписание 3) C:\учёба\информатика\Расписание 4) C:\Расписание Решение: Задача 7 Ответ: 4 Из каталога C:\учёба\информатика\ГИА выполняем действия в обратном порядке – 1 раз вверх (каталог информатика), еще раз вверх (каталог учеба), еще раз вверх (корневой каталог C:) и 1 раз вниз - C:\Расписание

Пользователь работал с каталогом C:\Компьютеры\Память. Сначала он спустился в каталог Винчестеры, после этого поднялся на один уровень вверх, затем ещё раз поднялся на один уровень вверх и далее спустился в каталог Процессоры. Укажите полный путь каталога, в котором оказался пользователь. 1) C:\Компьютеры\Процессоры 2) C:\Винчестеры\Процессоры 3) C:\Компьютеры\Память\Винчестеры 4) C:\Компьютеры\Память\Процессоры Решение: Задача 8 Ответ: 1 Из каталога C:\Компьютеры\Память спускаемся в каталог Винчестеры – C:\Компьютеры\Память\Винчестеры, 1 раз вверх (каталог C:\Компьютеры\Память), еще раз вверх (каталог C:\Компьютеры), и далее спускаемся в каталог Процессоры, результат C:\Компьютеры\Процессоры

Краткое описание документа:

Дерево – структура данных, представляющая собой древовидную структуру в виде набора связанных узлов.

Бинарное дерево — это конечное множество элементов, которое либо пусто, либо содержит элемент ( корень ), связанный с двумя различными бинарными деревьями, называемыми левым и правым поддеревьями . Каждый элемент бинарного дерева называется узлом . Связи между узлами дерева называются его ветвями .

Бинарное дерево

Способ представления бинарного дерева:

  • A — корень дерева
  • В — корень левого поддерева
  • С — корень правого поддерева

Корень дерева расположен на уровне с минимальным значением.

Узел D , который находится непосредственно под узлом B , называется потомком B . Если D находится на уровне i , то B – на уровне i-1 . Узел B называется предком D .

Максимальный уровень какого-либо элемента дерева называется его глубиной или высотой .

Если элемент не имеет потомков, он называется листом или терминальным узлом дерева.

Остальные элементы – внутренние узлы (узлы ветвления).

Число потомков внутреннего узла называется его степенью . Максимальная степень всех узлов есть степень дерева.

Число ветвей, которое нужно пройти от корня к узлу x , называется длиной пути к x . Корень имеет длину пути равную 0 ; узел на уровне i имеет длину пути равную i .

Бинарное дерево применяется в тех случаях, когда в каждой точке вычислительного процесса должно быть принято одно из двух возможных решений.

Имеется много задач, которые можно выполнять на дереве.

Распространенная задача — выполнение заданной операции p с каждым элементом дерева. Здесь p рассматривается как параметр более общей задачи посещения всех узлов или задачи обхода дерева.

Если рассматривать задачу как единый последовательный процесс, то отдельные узлы посещаются в определенном порядке и могут считаться расположенными линейно.

Способы обхода дерева

Пусть имеем дерево, где A — корень, B и C — левое и правое поддеревья.

Дерево

Существует три способа обхода дерева:

  • Обход дерева сверху вниз (в прямом порядке): A, B, C — префиксная форма.
  • Обход дерева в симметричном порядке (слева направо): B, A, C — инфиксная форма.
  • Обход дерева в обратном порядке (снизу вверх): B, C, A — постфиксная форма.

Реализация дерева

Узел дерева можно описать как структуру:

struct tnode <
int field; // поле данных
struct tnode *left; // левый потомок
struct tnode *right; // правый потомок
>;

При этом обход дерева в префиксной форме будет иметь вид

void treeprint(tnode *tree) <
if (tree!= NULL ) < //Пока не встретится пустой узел
cout tree->field; //Отображаем корень дерева
treeprint(tree->left); //Рекурсивная функция для левого поддерева
treeprint(tree->right); //Рекурсивная функция для правого поддерева
>
>

Обход дерева в инфиксной форме будет иметь вид

void treeprint(tnode *tree) <
if (tree!= NULL ) < //Пока не встретится пустой узел
treeprint(tree->left); //Рекурсивная функция для левого поддерева
cout tree->field; //Отображаем корень дерева
treeprint(tree->right); //Рекурсивная функция для правого поддерева
>
>

Обход дерева в постфиксной форме будет иметь вид

void treeprint(tnode *tree) <
if (tree!= NULL ) < //Пока не встретится пустой узел
treeprint(tree->left); //Рекурсивная функция для левого поддерева
treeprint(tree->right); //Рекурсивная функция для правого поддерева
cout tree->field; //Отображаем корень дерева
>
>

Бинарное (двоичное) дерево поиска – это бинарное дерево, для которого выполняются следующие дополнительные условия (свойства дерева поиска):

  • оба поддерева – левое и правое, являются двоичными деревьями поиска;
  • у всех узлов левого поддерева произвольного узла X значения ключей данных меньше, чем значение ключа данных самого узла X ;
  • у всех узлов правого поддерева произвольного узла X значения ключей данных не меньше, чем значение ключа данных узла X .

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

Как правило, информация, представляющая каждый узел, является записью, а не единственным полем данных.

Для составления бинарного дерева поиска рассмотрим функцию добавления узла в дерево.

Добавление узлов в дерево

struct tnode * addnode( int x, tnode *tree) <
if (tree == NULL ) < // Если дерева нет, то формируем корень
tree = new tnode; // память под узел
tree->field = x; // поле данных
tree->left = NULL ;
tree->right = NULL ; // ветви инициализируем пустотой
> else if (x field) // условие добавление левого потомка
tree->left = addnode(x,tree->left);
else // условие добавление правого потомка
tree->right = addnode(x,tree->right);
return (tree);
>

Удаление поддерева

void freemem(tnode *tree) <
if (tree!= NULL ) <
freemem(tree->left);
freemem(tree->right);
delete tree;
>
>

Пример Написать программу, подсчитывающую частоту встречаемости слов входного потока.

Поскольку список слов заранее не известен, мы не можем предварительно упорядочить его. Неразумно пользоваться линейным поиском каждого полученного слова, чтобы определять, встречалось оно ранее или нет, т.к. в этом случае программа работает слишком медленно.

Один из способов — постоянно поддерживать упорядоченность уже полученных слов, помещая каждое новое слово в такое место, чтобы не нарушалась имеющаяся упорядоченность. Воспользуемся бинарным деревом.

В дереве каждый узел содержит:

  • указатель на текст слова;
  • счетчик числа встречаемости;
  • указатель на левого потомка;
  • указатель на правого потомка.


Рассмотрим выполнение программы на примере фразы

now is the time for all good men to come to the aid of their party

now is the time for all good men to come to the aid of their party

При этом дерево будет иметь следующий вид

Результат выполнения: бинарное дерево

Результат выполнения


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


В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобретя в каталоге.

Получите невероятные возможности




Конспект урока "Файловая структура диска. Полное имя файла. Работа с файлами"

На прошлых уроках мы узнали:

· Основное устройство внешней памяти компьютера – его жёсткий диск.

· Для удобства работы жёсткий диск разбивают на логические разделы (тома). Так называется некоторая область памяти жёсткого диска, которая рассматривается как одно целое.

· Вся информация во внешней памяти компьютера храниться в файлах. Файл – это именованная область данных, которые хранятся на запоминающем устройстве.

· Чтобы было легче ориентироваться среди множества файлов, их объединяют в каталоги (директории). Так называются именованные совокупности фалов и подкаталогов.

· Файловые структуры и их разновидности

· Полное имя файла и его составляющие.

· Операции над файлами.

Для того, чтобы было удобнее ориентироваться в той информации, которая хранится в томах жёсткого диска или на других запоминающих устройствах, пользователь может объединять файлы в директории, эти директории могут находиться также внутри внешних директорий. Таким образом пользователь сам создаёт для себя наиболее удобную систему файлов и каталогов, или файловую структуру. Файловой структурой диска называется совокупность файлов и директорий на диске, а также связей между ними.

Все файловые структуры делятся два типа: простые (линейные) и иерархические (многоуровневые). При линейной файловой структуре в корневом каталоге устройства внешней памяти или тома жёсткого диска просто хранится некоторая последовательность файлов. Они не разделены на каталоги. То есть такую структуру можно представить в виде простого списка файлов. Линейная структура используется для хранения небольшого количества файлов.

В операционной системе Windows может быть сразу несколько корневых каталогов, поэтому структура файлов, которые хранятся на компьютере под её управлением будет образовывать сразу несколько деревьев.

Так как в Linux всего один корневой каталог, под её управлением файловая структура, всех файлов, содержащихся во внешней памяти компьютера, образует одно единое дерево.

Любой пользователь создаёт наиболее удобную для себя файловую структуру. Например можно создать на устройстве внешней памяти директории для фильмов, музыки, игр, школьных заданий и другие. Каталог со школьными заданиями может содержать каталоги по предметам, а они в свою очередь каталоги по датам. При поиске нужного файла пользователь будет понимать в каком каталоге он находится. А это сильно ускоряет процесс.

Чтобы выполнить какие-то действия с файлом, нужно указать путь к нему на запоминающем устройстве. Это последовательно записанные названия всех каталогов, от корневого, до того, в котором непосредственно находится файл. Путь к файлу начинается с названия корневого каталога устройства внешней памяти или тома жёсткого диска. Затем записываются названия всех каталогов, в которых находится файл от высшего уровня к низшему. В виндоус названия каталогов разделяются знаком \, а в линукс – знаком /.

Последовательно записав путь к файлу и его имя, мы получим полное имя файла. Любое программное обеспечение для того, чтобы обратиться файлу использует именно его полное имя. Отсюда следует 2 правила:

· На одном и том же компьютере не могут одновременно существовать два файла с одинаковыми полными именами.

· На одном компьютере не может быть двух каталогов с одинаковыми именами и путями к ним.

Так же в операционной системе Windows ограничена длина полного имени файла. Его длина не должна превышать 259 символов.

И так пользователь просматривал содержимое каталога D:\Спорт\Хоккей\2016. Мы можем представить схему пути к файлу.

Наверняка у многих из вас возник вопрос: “А что же вообще можно делать с файлами?”. Рассмотрим операции над файлами, всего их 8:

Первые 3 операции из списка, то есть создание, редактирование и просмотр выполнятся только с помощью различных приложений и систем программирования. Остальные же 5 можно выполнить с помощью средств операционной системы. Рассмотрим их подробнее. А также выполним их практически с помощью средств операционной системы Windows.

или используем сочетание клавиш Ctrl + V. Копия файла создана.

Важно запомнить:

· Файловая структура диска – это совокупность файлов и каталогов на диске, а также связей между ними.

· Файловые структуры бывают линейные и иерархические.

· Линейные подходят для хранения небольшого количества файлов.

· Когда на диске храниться большое количество файлов – удобнее использовать иерархическую структуру.

· Путь к файлу – это все названия каталогов в которых содержаться файл, записанные последовательно, от высшего уровня к низшему.

· Путь к файлу и его имя записанные последовательно дают полное имя файла.

· Создание, редактирование, просмотр, копирование, перемещение, удаление, переименование и поиск – это операции над файлами.

Читайте также: