![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Подсчёт количества узлов поддерева |
|
Разное - Подсчёт количества узлов поддерева
|
Новый участник Сообщения: 3 |
Народ, помогите пожалуйста, кто может. В общем дано произвольное дихотомическое дерево. Нужно проверить, является ли оно АВЛ-деревом.
Как подсчитать кол-во узлов в левом/правом поддереве? Я метод написал, но он не правильно работает, подскажите пожалуйста, кто может. Язык C#. //Кол-во узлов в бинарном дереве public int Count(DTreeNode pointer) { int c; if (pointer != null) c = Count(pointer.Left) + Count(pointer.Right) + 1; else c = 0; return c; } Вызов: class Program { static void Main(string[] args) { DixotomyTree T = new DixotomyTree(); //К примеру, вставим такие числа T.Root = T.Ins(T.Root, 70); T.Root = T.Ins(T.Root, 60); T.Root = T.Ins(T.Root, 80); T.Root = T.Ins(T.Root, 5); T.Root = T.Ins(T.Root, 4); T.Root = T.Ins(T.Root, 10); T.Root = T.Ins(T.Root, 79); T.Root = T.Ins(T.Root, 81); Console.WriteLine("В левом поддереве "+T.Count(T.Root.Left)+" Узлов"); Console.WriteLine("В правом поддереве " + T.Count(T.Root.Right) + " Узлов"); if (Math.Abs(T.Count(T.Root.Left) - T.Count(T.Root.Right)) <= 1) Console.Write("АВЛ-дерево!"); else Console.Write("НЕ АВЛ-дерево"); Console.ReadLine(); } } |
|
Отправлено: 18:56, 16-12-2009 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Delphi - Определение количества RAM и количества видеопамяти | stasmd | Программирование и базы данных | 17 | 05-04-2010 13:35 | |
подсчёт слов в текстовом файле | bakatum | Хочу все знать | 4 | 22-01-2010 21:10 | |
UserGate - Подсчёт трафика | Deman | Сетевые технологии | 0 | 08-12-2009 11:30 | |
Подсчёт трафика | KillHunter | Программное обеспечение Linux и FreeBSD | 5 | 12-02-2009 12:25 | |
Теория - Подсчёт узлов двоичного дерева рекурсивной функцией | Gamover jr | Программирование и базы данных | 6 | 11-11-2007 18:15 |
|