|
|
|
[C#] Про LinkedList: расположение в памяти, количество ссылок в узле
|
|||
|---|---|---|---|
|
#18+
1. В одном источнике у типа одна ссылка - на следующий узел, в другом источнике - две: на следующий узел и на предыдущий. Какой вариант правильный? 2. Узлы располагаются в памяти всплошную друг за другом, или могут быть в разбросаны в разных частях памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 07:57 |
|
||
|
[C#] Про LinkedList: расположение в памяти, количество ссылок в узле
|
|||
|---|---|---|---|
|
#18+
1. оба правильные. 2. в общем случае - где угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 08:12 |
|
||
|
[C#] Про LinkedList: расположение в памяти, количество ссылок в узле
|
|||
|---|---|---|---|
|
#18+
eNose, то есть в библиотеке .NET этот тип реализован с двумя ссылками? И что значит "в общем случае"? У типа есть счетчик узлов, но если узлы располагаются в памяти не друг за другом и есть только ссылка на следующий элемент, то пройти цепочку от конца к началу, просто отсчитывая у счётчика, не получится - получив таким образом адрес ожидаемого предыдущего элемента, попадём в чужой участок памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 12:02 |
|
||
|
[C#] Про LinkedList: расположение в памяти, количество ссылок в узле
|
|||
|---|---|---|---|
|
#18+
Bananasто есть в библиотеке .NET этот тип реализован с двумя ссылками? [зануда] .NET - не библиотека, а фреймворк! В котором куча библиотек. Поэтому нужно уточнять, о каком классе из какой библиотеки и/или пространства имён идёт речь. Если имеется в виду System.Collections.Generic.LinkedList<T> - то да, это двусвязный список. То есть в каждом узле содержатся ссылки и на предыдущий узел, и на следующий. [/зануда] BananasИ что значит "в общем случае"? Если узлы добавляются серией, без выделения памяти в других потоках, то они окажутся (могут оказаться) расположенными последовательно. Но гарантии этого нет. BananasУ типа есть счетчик узлов, но если узлы располагаются в памяти не друг за другом и есть только ссылка на следующий элемент, то пройти цепочку от конца к началу, просто отсчитывая у счётчика, не получится - получив таким образом адрес ожидаемого предыдущего элемента, попадём в чужой участок памяти. Ну да, всё верно. Bananas1. В одном источнике у типа одна ссылка - на следующий узел, в другом источнике - две: на следующий узел и на предыдущий. Какой вариант правильный? Вариант с двумя ссылками позволяет проходить в цикле как он начала к концу, так и наоборот. Но памяти тратится больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 23:37 |
|
||
|
[C#] Про LinkedList: расположение в памяти, количество ссылок в узле
|
|||
|---|---|---|---|
|
#18+
если узлы гарантированно располагаются в памяти друг за другом - то это массив, а не список и никакие ссылки не нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 02:40 |
|
||
|
[C#] Про LinkedList: расположение в памяти, количество ссылок в узле
|
|||
|---|---|---|---|
|
#18+
[quot petalvik][quot Bananas]то есть в библиотеке .NET этот тип реализован с двумя ссылками?[/oqut] [зануда] .NET - не библиотека, а фреймворк! В котором куча библиотек. Поэтому нужно уточнять, о каком классе из какой библиотеки и/или пространства имён идёт речь. Если имеется в виду System.Collections.Generic.LinkedList<T> - то да, это двусвязный список. То есть в каждом узле содержатся ссылки и на предыдущий узел, и на следующий. [/зануда] [/oqut] Да, этот класс. Но на мсдне не нашёл других классов LinkedList, хотя и на стекоферфло читал, что есть реализации двусвязные и односвязные. LinkedList<T> - реализация двусвязного списка. А какой тип реализует односвязный? revisionistесли узлы гарантированно располагаются в памяти друг за другом - то это массив, а не список и никакие ссылки не нужны Понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2013, 21:47 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=53&tid=1341664]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 379ms |

| 0 / 0 |
