0

Cでは、リストの各ノード内にデータを格納するのではなく、ノードから分離されるように、リンクされたリストを実装および変更できますか。ノード内のポインタはデータを指していますか?

4

2 に答える 2

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;
}
于 2013-11-07T18:46:11.843 に答える
0

A. はい、可能です。
B.なぜそれをするのですか?ノードはすでにそれ自体がポインターです。

于 2013-11-07T18:44:51.883 に答える