2013-11-07 2 views
0

В C может быть реализован и изменен связанный список, так что вместо того, чтобы хранить данные в каждом узле списка, он отделен от узла. А указатель внутри узла указывает на данные?Внедрение Связанный список, где данные являются отдельными

+6

Ответ сортировки: да, это возможно. – piokuc

+1

Вы пробовали это с собой, попробуйте сами, и вы обнаружите, что это возможно! –

+0

@piokuc Может быть, слишком «сортировать» ;-) –

ответ

0

A. Да, это возможно.
B. Зачем это делать? узел уже является указателем сам по себе.

1

Ответ да. Вместо сохранения ключей в узлах вы храните указатели на клавиши:

#include <stdio.h> 
#include <stdlib.h> 

typedef struct s_ListNode { 
    struct s_ListNode *next; 
    int *pointer; 
} ListNode; 

main() { 
    int a = 3, b = 5; 
    ListNode *root = malloc(sizeof(ListNode)); 
    ListNode *tail = malloc(sizeof(ListNode)); 
    ListNode *iter; 
    root->next = tail; 
    root->pointer = &a; 
    tail->next = NULL; 
    tail->pointer = &b; 
    for(iter=root; iter!=NULL; iter=iter->next) { 
    printf("%d\n", *iter->pointer); 
    } 
    return 0; 
} 
Смежные вопросы