КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Представление множеств линейными массивами
Задав линейный массив достаточной длины, можно "вручную" сымитировать множество для более широкого, чем 256 элементов, диапазона значений. Например, чтобы работать с множеством, содержащим 10 000 элементов, достаточно такого массива: set_arr: array[1..10000] of boolean;При таком способе представления возможно задать множество до 65 000 элементов. Для простоты изложения мы ограничимся только числовыми множествами, однако все сказанное ниже можно применять и к множествам, элементы которых имеют другую природу. Итак, признаком того, что элемент k является элементом нашего множества, будет значение true в k-й ячейке этого массива. Посмотрим теперь, какими способами мы вынуждены будем имитировать операции над "массивными" множествами. 1. Проверка множества на пустоту может быть осуществлена довольно просто: 2. pusto:= true;3. for i:= 1 to N do4. if set_arr[i] then begin pusto:= false;5. break end;6. Проверка элемента на принадлежность множеству также не вызовет никаких затруднений, поскольку соответствующая компонента массива содержит ответ на этот вопрос: is_in:= set_arr[element];7. Добавление элемента в множество нужно записывать так: set_arr[element]:= true;8. Удаление элемента из множества записывается аналогичным образом:
12. Проверка двух множеств на равенство не требует особых пояснений: 13. equal:= true;14. for i:=1 1 to N do15. if set1[i]<> set2[i] 16. then begin equal:= false;17. break end;18. Проверка двух множеств на включение (set1<set2) тоже не потребует больших усилий: 19. subset:= true;20. for i:= 1 to N do21. if set1[i]and not set2[i]22. then begin subset:= false;23. break end;
Дата добавления: 2014-01-03; Просмотров: 242; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |