实现数据分离的链接列表

时间:2013-11-07 18:37:24

标签: c linked-list

在C中,可以实现和修改链接列表,以便将数据存储在列表的每个节点中,而是将其与节点分开。节点内的指针指向数据?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

一个。是的,这是可能的。
B.为什么要这样做?该节点本身已经是一个指针。