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