Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

Стандартные средства работы со списками   Найти похожие ветки 

 
SAVage ©   (2005-10-24 17:36) [0]

Доброе время суток. Кто-нибудь знает есть ли какие-нибудь средства работы со списками? Как односвязными так и двусвязными.
Меня вполне устроит ссылка на какую-нибудь статью на соответсвующую тему.А то почему-то поиск по сайту не работает, не исключаю,конечно, что дело во мне. =)


 
MBo ©   (2005-10-24 18:22) [1]

http://www.boyet.com/FixedArticles/EZDSL.html


 
SAVage ©   (2005-10-24 22:23) [2]

я извиняюсь, что не уточнил, мне нужны, средства исключительно станадартные, если такие существуют, если нет, то тогда совсем не надо, ручками буду прописывать.


 
Sergey Masloff   (2005-10-24 22:30) [3]

Contnrs.pas

А код такого качества как в ezdsl руками руками вот так сходу написать непросто.


 
SamProf ©   (2005-10-24 23:14) [4]

Есть тип такой: TList!


 
SAVage ©   (2005-10-24 23:25) [5]

никто и не спорит, мне и не нужно, такой же код как ezdsl, мне нужно максимально разгрузить (т.е. при минимальном собственном вмешательстве, чтобы не тратить время на реализацию) работу со списками, причем исключительно стандартными (!) средствами.
Можно поподробней, насчет модуля Contnrs, что вы имели ввиду, там много всякого добра, мне нужно не так много, должны выполняться след. операции: добавлять, удалять (в любое место списка - начало, конец, середина...), скажем если взять контейнер TList, то я не смогу выполнить след. операцию:
добавить элемент в середину списка, да и, насколько я знаю, в модуле Contnrs.pas почти всё, что там есть работает только с объектами, что не всегда хорошо.


 
SamProf ©   (2005-10-24 23:42) [6]

TList это хорошое начало для списка любого типа!
Его переделать в любой список раз плюнуть!


 
Джо ©   (2005-10-24 23:56) [7]

[5] SAVage ©   (24.10.05 23:25)
> TList, то я не смогу выполнить след. операцию:
> добавить элемент в середину списка,

Метод Insert отменили?


 
Alex Konshin ©   (2005-10-25 01:01) [8]

SamProf ©   (24.10.05 23:14) [4]
Джо ©   (24.10.05 23:56) [7]
TList - не список вовсе.


 
Джо ©   (2005-10-25 01:20) [9]


>  [8] Alex Konshin ©   (25.10.05 01:01)
> SamProf ©   (24.10.05 23:14) [4]
> Джо ©   (24.10.05 23:56) [7]
> TList - не список вовсе.

У автора, насколько я понял, к TList была всего лишь одна претензия, цитирую:
> скажем если взять контейнер TList, то я не смогу выполнить
> след. операцию:
> добавить элемент в середину списка

Претензия надуманная, ибо имеется соответствующий метод.

Кроме прочего - что именно автор разумел под "списком" уточнено не было. Это может быть всё, что угодно, в том числе, и готовый контейнерный класс.


 
Германн ©   (2005-10-25 02:02) [10]

2 Джо ©   (24.10.05 23:56) [7]
2 Джо ©   (25.10.05 01:20) [9]
2 SamProf ©   (24.10.05 23:14) [4]

List - это список. Но "список" это не всегда TList. :(
Да и автор сабжа дал некие уточнения - :
>  "Как односвязными так и двусвязными."


 
Джо ©   (2005-10-25 02:10) [11]

[0]
>  Кто-нибудь знает есть ли какие-нибудь средства работы со
> списками?


Для реализации такой структуры данных как "список" в целевом языке должно присутствовать:
1. Возможность работы с динамической памятью;
2. Работа с указателями;
3. Возможность определять пользовательские (структурные) типы.
Все это в Делфи присутствует. Реализуй сколько угодно хоть "списки", хоть "очереди" хоть...

В чем все-же вопрос?


 
Джо ©   (2005-10-25 02:16) [12]


>[8] Alex Konshin ©   (25.10.05 01:01)
> [10] Германн ©   (25.10.05 02:02)

Автор сам "приплел" TList. В контексте обсуждения "списков". Причем, утверждал, что там нет чего-то, ему очень нужного. Я указал на наличие в классе TList столь желанного метода. Вот и все, что я счел нужным заметить по этому поводу. Мне же зачем-то стали приписывать утверждения, которых я не хотел, да и не мог высказать.
:?


 
Германн ©   (2005-10-25 03:14) [13]

2 Джо ©   (25.10.05 02:16) [12]
Плюнь и разотри!
Ты не сделал ошибок!
Но не понял сабж. :(


 
Sergey Masloff   (2005-10-25 06:46) [14]

Alex Konshin ©   (25.10.05 01:01) [8]
>TList - не список вовсе.
Список-список. Если что-то выглядит как утка, плавает как утка и крякает как утка то это и есть утка (с) ;-)))
 А TList это реализация абстрактного типа данных список (упорядоченый набо элементов над которыми определены операции вставки в произвольную позицию, удаления, нахождения позиуии элемента и обнуления ). А что реализован этот список как массив указателей это уже детали реализации.


 
Anatoly Podgoretsky ©   (2005-10-25 08:53) [15]

Конечно список - линейный. Типичная регулярная структура.


 
SAVage ©   (2005-10-25 19:34) [16]

в TList - операция добавления элемента в середину имеет сложность линейную , а не константную, т.е. приходится сдвигать весь массив. В таком случае теряется все преимущество списка надо массивом.
Меня интересовало, есть ли что-нибудь аналогичное c++ному std::list!
Насколько я понял - нет.


 
umbra ©   (2005-10-25 19:43) [17]


> аналогичное c++ному std::list


Я не знаю, что это, но в Cоntnrs.pas есть класс TBucketList, как написано в хелпе, простой хэш, содержащий указатели, индексируемые другими указателями.


 
Anatoly Podgoretsky ©   (2005-10-25 20:12) [18]

SAVage ©   (25.10.05 19:34) [16]
TList и есть динамический массив, оформленный в виде класса и снабженый соответствующими функциями. Поддержан только линейный список, ака одномерный массив. Кроме того есть еще два специфических "списка" - стек и очередь. В кавычки взял из-за спорности утверждения.


 
wicked ©   (2005-10-25 22:32) [19]

http://sourceforge.net/projects/decal/ - когда-то обсуждалась на Королевстве... хотя последняя версия, датированная 2000 годом, настораживает...


> Меня интересовало, есть ли что-нибудь аналогичное c++ному
> std::list!

нету... это делфи, поэтому std::list у каждого - свой.... :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.063 c
1-1130156376
fateflex
2005-10-24 16:19
2005.11.13
Инспектор


1-1129910104
jiurasdfsdfs
2005-10-21 19:55
2005.11.13
Tms Adv Grid - как сделать суммрование и...?


2-1129181282
Norsk
2005-10-13 09:28
2005.11.13
Как работать с Wav файлами


9-1120178057
Strech
2005-07-01 04:34
2005.11.13
Edit в DirectX


2-1129229041
illy
2005-10-13 22:44
2005.11.13
Реестр





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский