<!> Методы поиска свободного элемента в списке

Тема в разделе "WASM.A&O", создана пользователем CodeWorld, 14 фев 2005.

  1. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Эмулятор делаем, или мэнеджер памяти? =)

    Поскольку куски большие (4кб) и больше миллиона их вряди будет (4gb), то я бы использовал хэш-таблицу. Ключем к поиску будет соответственно адрес_страницы shr 12. Мгновенный поиск по индексу. Минусы - надо 4мб памяти на массив.

    Ну а если страниц может быть больше и их не удается сгруппировать в несколько подряд идущих списков, то я бы глядел в сторону бинарных деревьев.
     
  3. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    ну не савсем менеджер памяти, он вроде как есть - заканчивается он аллоком страниц и их маппингом =) А так сказать универсальный модуль для хранение структур ядра в виде списков, можно назвать динам. массивом =) Вощем сам лист (модуль LIST - как я его назвал) па себе очень низкого уровня, в канечном это будет наверно AVL деревья. Но в некоторых местах заюзаю в чистом виде как массивы.. лано че то панесло, это не суть %)

    Стоп, в одной странице может быть несколько элементов. Если элемент каждый занимает около 8 байт, то в одной странице поместиться около 330 элементов.. то теоретичсеки на IA32 может быть 349175808 элементов ;) Или я тебя не понял или ты меня, но про куски 4кб больше миллиона не савсем дагнал =) Про то что страницы неудаётся сгруппировать в линейно идущих друг за другом - это точно, сори за ламошность - а бинарные деревья это как? =)



    Кстати тут нету народа которого можно падтянуть ось писать? ^)
     
  4. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    AVL есть бинарные деревья? =) Пахоже борланд сваими кампанентами поместил меня в свой визуальный мир и закрыл мне глаза на самые важные вещи, которые лежали в основе иллюзий, казавшимися явными фактами, и ... лоптоп, ресет ;)

    Лано я пачитаю про бинарные дереФья, но на сколько плохо делать так как предложил я?
     
  5. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    нет это не так оказ.. слушай я не савсем дагнал некоторую вещь. Переход по дереву происходит так, что каждый элемент ссылается на элемент с большим индексом, но не больше чем у соседней ветки, как то так вроде... А как выбрать разветвление в самом начале корня дерева, мы ведь незнаем скоко элементов будет.. т.е. оно дальше может очень не равномера ветвиться что весь кайф теряется.. или как?
     
  6. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Если это бинарное дерево, то разветвлений всегда два. А если оно будет сбалансированным, то ветвление будет равномерным (но балансом будешь заниматься не ты, а само дерево =)
     
  7. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    я не панимаю...смотри, каждый элемент в дереве ссылается на элементы больше его? или меньше? тогда ваще непоянтно... больше? тогда не понятно с какого индекса будут входить элементы во вторую ветку. а? перескажи как ты сам панимаешь бинарное дерево, т.е. его организацию
     
  8. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Ну это блин учите мат.часть, мне распинаться некогда да и не грамотен я :)
     
  9. TheRawGod

    TheRawGod New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2003
    Сообщения:
    71
    Под понятие "бинарное дерево" попадают все деревья, узлы которых имеют всегда по 2 разветвления. А значит и красно-черные, и AVL деревья, и много других являются бинарными. Строго говоря, AVL обозначает способ балансировки бинарного дерева.
     
  10. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    TheRawGod, шикарно =) а объяснить про то как плетется дерево? Если оно ссылается на элементы определенного диапазона относительно себя то непонятно как оно плетётся.

    Набей ответ к посту от Дата: Фев 15, 2005 13:59:07, плиз
     
  11. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    >и не грамотен я :)

    да ладно! скромняга, па тваему нику так не скажешь =)
     
  12. TheRawGod

    TheRawGod New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2003
    Сообщения:
    71
    По АВЛ деревьям море информации в сети. И о том, как они плетутся и оценки всякие, короче все что хочешь.

    Мне в свое время очень понравился java-applet, демонстрирующий принцип работы с АВЛ деревьями:

    Родная локация

    Зеркало 1

    Зеркало 2



    Там же можно найти и ответ на пост от Дата: Фев 15, 2005 13:59:07.
     
  13. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    спасибки за ссылку, паААсмотрим!