В академічному плані, яка суттєва відмінність між структурою даних Деревом та Графіком? А як щодо пошуку на основі дерева та пошуку на основі графіків?
В академічному плані, яка суттєва відмінність між структурою даних Деревом та Графіком? А як щодо пошуку на основі дерева та пошуку на основі графіків?
Відповіді:
Дерево - це лише обмежена форма Графіка.
Дерева мають напрямок (стосунки батька / дитини) і не містять циклів. Вони входять у категорію спрямованих ациклічних графіків (або DAG). Отже, Дерева - це ДАГ з тим обмеженням, що дитина може мати лише одного батька.
Важливо зазначити одне, що Дерева - це не рекурсивна структура даних. Вони не можуть бути реалізовані як рекурсивна структура даних через вищезазначені обмеження. Але будь-яка реалізація DAG, яка, як правило, не є рекурсивною, також може бути використана. Моя бажана реалізація дерева - це централізоване представлення карт і не є рекурсивним.
Графіки, як правило, спочатку шукаються по ширині або спочатку глибині. Те саме стосується Дерева.
Замість того, щоб пояснювати, я вважаю за краще показувати це на картинках.
Дерево в режимі реального часу
Графік використання в реальному житті
Так, карту можна візуалізувати як структуру даних графіків.
Бачачи їх таким, полегшує життя. Дерева використовуються там, де нам відомо, що кожен вузол має лише одного з батьків. Але графіки можуть мати декількох попередників (термін батьків зазвичай не використовується для графіків).
У реальному світі ви можете представляти майже все, використовуючи графіки. Я, наприклад, використовував карту. Якщо ви розглядаєте кожне місто як вузол, його можна дістати з декількох точок. Точки, які ведуть до цього вузла, називаються попередниками, а точки, до яких цей вузол призведе, називаються наступниками.
електрична схема, план будинку, комп'ютерна мережа або річкова система - це ще кілька прикладів графіків. Багато прикладів реального світу можна розглядати як графіки.
Технічна схема може бути такою
Дерево:
Графік:
Переконайтесь, що посилаються на посилання нижче. Вони відповідуть майже на всі ваші запитання щодо дерев та графіків.
Список літератури:
Інші відповіді корисні, але у них відсутні властивості кожного:
Ненаправлений графік, джерело зображення: Вікіпедія
Направлений графік, джерело зображення: Вікіпедія
Може бути націленим або непрямим (що стосується всіх ребер у графіку)
відповідно до Вікіпедії :
Наприклад, якщо вершини представляють людей на вечірці, а між двома людьми є край, якщо вони потискають руку, то цей графік є непрямим, оскільки будь-яка людина A може потиснути руку людині B, лише якщо B також потисне руку A. На відміну від цього, якщо будь-який край від людини A до людини B відповідає A, що захоплюється B, то цей графік спрямований, тому що захоплення не обов'язково відтворюється.
У перерахованих вище властивостях є деяке перекриття. Зокрема, останні два властивості мають на увазі решту властивостей. Але все-таки їх варто відзначити.
У дереві кожен вузол (крім кореневого вузла) має рівно один вузол-попередник та один-два наступні вузли. Її можна пройти за допомогою переходу "Замовлення", "Замовлення", "Замовлення після замовлення" та "Ширина першої ширини". Дерево - це особливий вид графа, який не має циклу, так що його називають DAG (Directed Acyclic Graph). Дерево - це ієрархічна модель.
На графіку кожен вузол має один або декілька попередніх вузлів та наступних вузлів. Графік проходить за допомогою алгоритмів глибинного першого пошуку (DFS) та першого пошуку ширини (BFS). Графік має цикл, тому він складніший за дерево. Графік - це мережна модель. Існує два види графіків: спрямовані графіки та ненаправлені графіки.
Дерева очевидні: вони рекурсивні структури даних, що складаються з вузлів з дітьми.
Карта (він же словник) - пари клавіш / значень. Дайте карті ключ і воно поверне пов'язане значення.
Карти можна реалізувати за допомогою дерев, сподіваюся, ви не вважаєте це заплутаним.
ОНОВЛЕННЯ: Плутати "графік" для "карта" дуже заплутано.
Графіки складніші за дерева. Дерева мають на увазі рекурсивні відносини батька / дитини. Існують природні способи обрізати дерево: по-перше, по глибині, по рівню та ін.
Графіки можуть мати однонаправлені або двонаправлені шляхи між вузлами, бути циклічними або ациклічними тощо. Я б вважав графіки більш складними.
Я думаю, що побіжний пошук у будь-якому пристойному тексті структур даних (наприклад, "Посібник з розробки алгоритмів") дасть більше та кращу інформацію, ніж будь-яка кількість відповідей на відповідь. Я б рекомендував вам не брати пасивний маршрут і починати робити деякі дослідження для себе.
Дерево - це особлива форма графа, тобто мінімально пов'язаний графік і має лише один шлях між будь-якими двома вершинами.
У графі може бути більше одного шляху, тобто графік може мати односпрямовані або двонаправлені шляхи (ребра) між вузлами
Також ви можете побачити більше деталей: http://freefeast.info/difference-between/difference-between-trees-and-graphs-trees-vs-graphs/
У математиці графік - це представлення сукупності об'єктів, де деякі пари об’єктів з'єднані ланками. Пов’язані між собою об'єкти представлені математичними абстракціями, які називаються вершинами, а зв’язки, що з'єднують деякі пари вершин, називаються ребрами. [1] Як правило, графік зображується у схематичній формі як набір точок для вершин, з'єднаних лініями або кривими для ребер. Графіки є одним із об'єктів вивчення дискретної математики.
один кореневий вузол на дереві та лише один батько для однієї дитини. Однак поняття кореневого вузла не існує. Ще одна відмінність полягає в тому, що дерево є ієрархічною моделлю, але графік - мережевою моделлю.
Дерево - це диграф, який:
а) зі знятими напрямками краю, він з'єднаний і ациклічний
- Можна видалити або припущення, що воно є ациклічним
- Якщо вона кінцева, ви можете видалити припущення, що воно підключено
б) кожна вершина, крім однієї, кореня, має 1
в) корінь має 0
- Якщо є лише кінцево багато вузлів, ви можете видалити припущення, що корінь має 0, або припущення, що вузли, окрім кореня, мають ступінь 1
Довідка: http://www.cs.cornell.edu/courses/cs2800/2016sp/lectures/lec27-29-graphtheory.pdf
Дерево - це в основному непрямий графік, який не містить циклу, тому можна сказати, що дерево є більш обмеженою формою графа. Однак дерево і графік мають різну програму для впровадження різних алгоритмів в програмуванні. Наприклад, графік може бути використаний для модельної дорожньої карти, а дерево може використовуватися для реалізації будь-якої ієрархічної структури даних.