我想知道是否可以输入整数n并能够创建n个链表节点。我将如何扫描一个整数,然后输入3个字符串以放入该节点内部,以便稍后调用并与其他节点进行比较?以及我将如何对想要创建的多个节点连续执行此操作? 我知道是否可以使用for循环来继续添加节点,我只想知道如果我想创建所需的许多链表,我的语法是什么。
答案 0 :(得分:0)
如果您指的是 n 链表 节点 ,那么可以。通常,如果您事先知道需要多少个节点,则可以简单地使用数组。通常,当您事先不知道列表的大小并且知道列表可能经常波动时,链接列表很有用(例如:模拟堆栈-push / pop运算符)。
也就是说,可以将链接列表节点定义为具有数据字段和指向下一个节点的指针字段的结构。
struct node {
int some_data;
struct node *next_node;
};
请注意,第二个字段称为 next_node ,类型为指向结点的指针。
然后,您可以定义一个函数,该函数将节点作为参数,分配一个新节点(有关 malloc 函数和 free 函数的信息),并将其指向在参数节点上。这将是将数据推送到列表的一种方式。
关于您的节点中有2个数据值的问题-这也是可能的,因为您是一个定义节点结构的人。只需在结构中添加另一个字段即可。
struct node {
int first_data_value;
int second_data_value;
struct node *next_node;
float third_data_value;
};
还请注意,像 int * item 或 struct node * node 之类的指针变量会保存内存地址。这就是链接列表的工作方式!结构中的下一个字段包含一个内存地址。如果该内存地址是另一个节点的地址,则称它们已连接。