Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамический список 
:(
    Опции темы
max07
Дата 27.9.2007, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 21.12.2004

Репутация: нет
Всего: нет



Здрасте,

Такой вопрос: интересно как реализоват на С# такой список как на картинке? И ещё, как правельно он называется по русски или английски?

Спасибо всем кто ответит.

Присоединённый файл ( Кол-во скачиваний: 43 )
Присоединённый файл  spisok.jpg 7,65 Kb
PM MAIL   Вверх
Experimenter
Дата 27.9.2007, 05:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



Вот это не подойдет?


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
ivashkanet
Дата 27.9.2007, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



max07, что-то я не могу врубиться что за список на картинке... 
Первая колонка, вроде, массив, а потом пошёл связный список... Фигня какая-то. 
Это не базовая конструкция. Так что название будет только у того автора, кот его придумал (только он же его и использует).

P.S. 
Цитата(max07 @  27.9.2007,  00:22 Найти цитируемый пост)
как правильно он называется по русски или английски

Могу только предположить: Arrayed Linked List либо Array of Linked Lists и Массив Связных Списков  smile 
Experimenter, TreeView это визуальный контрол, а не способ хранения данных (как спрашивает автор топика).

Это сообщение отредактировал(а) ivashkanet - 27.9.2007, 08:06
PM MAIL WWW ICQ   Вверх
Experimenter
Дата 27.9.2007, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



ivashkanet, сморозил, есть немного. smile 


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
ivashkanet
Дата 27.9.2007, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



max07, кстати, таким способом реализуется Хэш-таблица (но об этом знают только те, кто в ее устройство залазил).
Если интересно, то поищи в Гугле
P.S. Experimenter, со всеми бывает ;-)
PM MAIL WWW ICQ   Вверх
archeg
Дата 27.9.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Цитата(ivashkanet @  27.9.2007,  09:58 Найти цитируемый пост)
max07, кстати, таким способом реализуется Хэш-таблица

Нам на лекциях показывали такой список перед тем как учили хештейбл. Как его препод называл - непомню, но препод мог сам придумать хз че - он такой smile 


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
max07
Дата 27.9.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 21.12.2004

Репутация: нет
Всего: нет



Да такими списками реализуется хэш таблица попытался перевести с языка на котором есть название: развлетвлённый динамический список.

ещё такой пример (см. картинку)

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  Untitled.jpg 6,16 Kb
PM MAIL   Вверх
ivashkanet
Дата 27.9.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



max07, я знаю! Это игра Угадайка! правильно?
PM MAIL WWW ICQ   Вверх
max07
Дата 27.9.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 21.12.2004

Репутация: нет
Всего: нет



Нет, извиняюсь что так выражаю вопрос, но больше не имею никакой информации
PM MAIL   Вверх
archeg
Дата 27.9.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 11
Всего: 27



Как называется - хз) думаю тот второй рисунок точно не имеет названия. Но реализация например такая:
Второй рисунок
Код

class Node
{
    public object Data;
    public Node NextNode;
    public Node AddNode(object data)
    {
       NextNode = new Node();
       NextNode.Data = data;
       return NextNode
    }
}
class StartNode
{
    public object Data;
    public Node NextNode;
    public StartNode NextStartNode;

    public Node AddNode(object data)
    {
       NextNode = new Node();
       NextNode.Data = data;
       return NextNode;
    }
    public StartNode AddStartNode(obect data)
    {
       NextStartNode = new StartNode();
       NextStartNode.Data = data;
       return NextStartNode;
    }
}

class Program
{
    static void Main()
    {
         StartNode start =new StartNode("blabla");
         StartNode start1 = start.AddStartNode("blabla");
         Node node1 = start1.AddNode("babla");
         node1.AddNode("blabla");
        
         StartNode start2 = start1.AddStartNode("blabla");
         start2.AddNode("blabla");
        
    }
}


Первый рисунок от второго отличается тем что вместо StartNode (списка списков) используется массив. Писал прямо в браузере, может где-то че не поставил или забыл. Это пример, написал специаьно так чтобы было ясно что оно есть на самом деле smile В реалии оно будет выглядить коненчо же совсем по-другому

З.Ы. Что до названия то думаю эт просто "список списков"  smile 

Это сообщение отредактировал(а) archeg - 27.9.2007, 13:13


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
thomas
Дата 27.9.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



max07, 
Привет.
Я так понимаю, это все от сюда.
На картинках показаны комбинации из различных видов коллекций в коллекции(см. ссылку) 

ЗЫ вот вечером нарыл еще статей на эту тему тут в СЕРЕДИНКЕ.  smile 


Это сообщение отредактировал(а) thomas - 27.9.2007, 22:39


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
max07
Дата 29.9.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 21.12.2004

Репутация: нет
Всего: нет



Спасибо за ответы, хотел ещё узнать как реализовать эти вложенные друг в друга списки с помощью List<T>, с ним может проше будет? да и быстрее работать?
PM MAIL   Вверх
marcusmae
Дата 29.9.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 22
Всего: 39



max07, приведённые иллюстрации можно назвать, если угодно, деревьями. Впрочем, конструкции неоднородны и далеки от какого-либо канонического вида  smile

Имхо, неплохая книжка по сабжу : Никлаус Вирт "Алгоритмы и структуры данных", гл. 4 : "Данные с динамической структурой". Юзал, когда готовился к экзамену по алгоритмическим языкам давно-давно на 1ом курсе  smile Вирт даёт примеры на полупаскальном псевдокоде, что, впрочем, неважно, если понимать об чём речь.

На картинках комбинируются элементы двоичных деревьев (когда элемент состоит из значения и двух указателей на следующие элементы) и однонаправленных списков (когда элемент состоит из значения и указателя на следующий элемент). Ещё бывают двунаправленные списки (когда элемент содержит значение, указатель на пред. элемент и указатель на следующий), кольцевые списки и ещё всякая разная экзотика, какую только можно придумать.

Цитата(max07 @  29.9.2007,  13:05 Найти цитируемый пост)
 хотел ещё узнать как реализовать эти вложенные друг в друга списки с помощью List<T>, с ним может проше будет? да и быстрее работать?

Видите ли в чём дело, Вам надо бы собирать динамические объекты из элементов, но List<T> и все остальное, что есть в System.Collections.Generic предлагает уже готовый объект, причём детали его реализации скрыты. Все эти конструкции логичнее было бы реализовывать на до-.NETовых языках, ручками создавая типы элементов. Или если очень уж хочется под .NET, то так же ручками, примерно как предлагает archeg (только, может, вместо классов использовать структуры).



Это сообщение отредактировал(а) marcusmae - 29.9.2007, 13:53


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.