Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.08.2022
Сообщений: 47

Работа с массивом через ООП

23.11.2022, 15:32. Показов 2106. Ответов 2

Студворк — интернет-сервис помощи студентам
Нужно написать класс, который принимает в конструктор массив этих объектов и реализует 4 метода:
# - getAll() Должен возвращать изначальный массив элементов.
# - getItem(id) Принимает id элемента и возвращает сам объект элемента;
# - getChildren(id) Принимает id элемента и возвращает массив элементов, являющихся дочерними для того элемента,
# чей id получен в аргументе. Если у элемента нет дочерних, то должен возвращаться пустой массив;
# - getAllParents(id) Принимает id элемента и возвращает массив из цепочки родительских элементов,
# начиная от самого элемента, чей id был передан в аргументе и до корневого элемента,
# т.е. должен получиться путь элемента наверх дерева через цепочку родителей к корню дерева. Порядок элементов важен!

Требования: максимальное быстродействие, следовательно, минимальное количество обходов массива при операциях,
# в идеале, прямой доступ к элементам без поиска их в массиве

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tems = [
    {"id": 1, "parent": "root"},
    {"id": 2, "parent": 1, "type": "test"},
    {"id": 3, "parent": 1, "type": "test"},
    {"id": 4, "parent": 2, "type": "test"},
    {"id": 5, "parent": 2, "type": "test"},
    {"id": 6, "parent": 2, "type": "test"},
    {"id": 7, "parent": 4, "type": None},
    {"id": 8, "parent": 4, "type": None}
]
ts = TreeStore(items)
 
# Примеры использования:
#  - ts.getAll() // [{"id":1,"parent":"root"},{"id":2,"parent":1,"type":"test"},{"id":3,"parent":1,"type":"test"},{"id":4,"parent":2,"type":"test"},{"id":5,"parent":2,"type":"test"},{"id":6,"parent":2,"type":"test"},{"id":7,"parent":4,"type":None},{"id":8,"parent":4,"type":None}]
#
#  - ts.getItem(7) // {"id":7,"parent":4,"type":None}
#
#  - ts.getChildren(4) // [{"id":7,"parent":4,"type":None},{"id":8,"parent":4,"type":None}]
#  - ts.getChildren(5) // []
#
#  - ts.getAllParents(7) // [{"id":4,"parent":2,"type":"test"},{"id":2,"parent":1,"type":"test"},{"id":1,"parent":"root"}]
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2022, 15:32
Ответы с готовыми решениями:

Работа с массивом через пользовательские функции через указатели
Не хочет работать ( Выводит только последний элемент массива ) Help! #include <iostream> using namespace std; void vvod(int x,...

Работа с массивом с через strcpy_s()
Функция addBrackets принимает массив и преобразует его заключая в скобки . т.е. на на вход массив: text после преобразования: ...

Работа с массивом через указатели
Приветствую всех, форумчане! Проблемка у меня с данным кодом в следующем: что-то с указателями я намешал и получилось так, что вообще не...

2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
23.11.2022, 17:11
Цитата Сообщение от Suvenir Посмотреть сообщение
массив этих объектов
- каких "этих"?
0
0 / 0 / 0
Регистрация: 04.08.2022
Сообщений: 47
23.11.2022, 18:23  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
- каких "этих"?
Массив объектов, которые имеют поля id и parent, через которые их можно связать в дерево и некоторые произвольные поля.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2022, 18:23
Помогаю со студенческими работами здесь

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

Работа с массивом через диалоговое меню
Я новичок, ошибок куча. Прошу указать по возможности на каждую. Программа не запускается из - за ошибок, как решить их - не знаю(( ...

Работа с массивом через геттер и сеттер
#include <iostream> using namespace std; class My_Class { private: int *p; public: My_Class() { p = new int ;

Работа с массивом char через динамическую память
Здравствуйте. Изучаю для себя как работают Си-строки, используя память динамически. Вопрос в следующем: я выделяю память динамически под...

Массив структур. Работа с массивом через функции
Здравствуйте! Дано задание: 1) создать массив структур 2) заполнить его через ф-цию 3) вывести массив 4) добавить n-ое кол-во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru