c - 实现数据独立的链表

标签 c linked-list

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

最佳答案

答案是肯定的。只是不是将键保存在节点中,而是存储指向键的指针:

#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;
}

关于c - 实现数据独立的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19843970/

相关文章:

c - 在 C 中使用链表添加新函数

c - 如果字符串中间有空字符,我该如何处理字符串?

c - Stm32L151RCxxx USART挂起问题,同时基于中断的TX/RX

c++ - 使用链表制作模板类

c - 这个链表没有变化,在main函数中不起作用

C链表循环引用

c++ - 递归地打印一个类内部的链表c++

c - 与 libevent2 配对的 bufferevents 的问题

C (XC8) 使用三元运算符隐式有符号到无符号转换

c++ - 是否假定C/C++中的所有函数都返回?