|
|
|
| не понятен смыл работы с линейными списками. вот пример стурктуры где и как храняться данные?
struct Node{
int elem;
Node *next;
Node "prev;
}; |
я понимаю что это рекурсивые структуры, но не совсем понятен смысл как они работают. | |
|
|
|
|
|
|
|
для: daym0n
(01.02.2008 в 03:17)
| | структуры не рекурсивные.
Данные хранятся в int elem;
Встречный вопрос: понимаете ли принцип работы стека или очереди?
Если нет, то почитайте про стек, это самое простое.
Иначе будет очень трудно и долго объяснять вам про список. | |
|
|
|
|
|
|
|
для: alex19921992
(01.02.2008 в 08:42)
| | ну предположительно я знаю что такое стек. мне просто интересно как данные храняться в таком виде? | |
|
|
|
|
|
|
|
для: daym0n
(01.02.2008 в 08:51)
| | Ну просто валяются где-то в памяти, причем *next и *prev содержат адреса следующей и предыдущей ячейки данных. таким образом, мы, зная начало и конец списка можем по нему всему "пройти" и получить данные с каждого элемента. | |
|
|
|
|
|
|
|
для: alex19921992
(01.02.2008 в 20:26)
| | да понятно зачем здесь next и prev, не понятно как оно хранится, или структура представляет собой некий массив? | |
|
|
|
|
|
|
|
для: daym0n
(02.02.2008 в 02:36)
| | Данная структура эквивалентна char Node[12]
причем node[0]...node[3] - это int
node[4]...node[7] - это prev
node8]...node[11] - это next | |
|
|
|
|
|
|
|
для: daym0n
(02.02.2008 в 02:36)
| | Данная структура эквивалентна char Node[12]
причем node[0]...node[3] - это int
node[4]...node[7] - это prev
node[8]...node[11] - это next | |
|
|
|
|
|
|
|
для: alex19921992
(02.02.2008 в 10:16)
| | почему именно char Node[12]??? | |
|
|
|
|
|
|
|
для: daym0n
(02.02.2008 в 13:14)
| | потому что sizeof(int)=4
sizeof(Node*)=4
sizeof(Node*)=4
4+4+4=12 (байт) | |
|
|
|