gpt4 book ai didi

c - 在c中将一个值插入到链表的中间

转载 作者:行者123 更新时间:2023-11-30 19:05:56 24 4
gpt4 key购买 nike

Picture of Text

在这张图中,我必须编写一个程序,每次读取字母i时,它都会将后面的值插入到链接列表中。如果到达有两个数字的行,例如:i 23 42,它将在23后面输入42到链表中。

因此,如果我打印 txt 文件第 3 行的链接列表,它应该打印 23, 78, 900。当到达第四行时,它应该打印 23, 42, 78, 900

我不确定如何让程序识别出该行中有两个值而不是一个值,以便能够将第一个值之后的第二个值输入到链接列表中。

编辑**

struct node * addToList(struct node *base, int data)
{
struct node *newNode = NULL;

if (base == NULL)
{
base = malloc( sizeof(struct node));
// malloc defend
base->data = data;
base->next = NULL;
return base;
}

while (base->next != NULL)
{
base = base->next;
}
//Now at the end of the list
newNode = malloc( sizeof(struct node));
//Defend against bad malloc
base->next = newNode;
newNode->data = data;
newNode->next = NULL;
return base;

“下一部分在 main 中”

    while (fscanf(ifp, "%s", inBuf) != EOF)
{
fprintf(stdout, "%s\n", inBuf);
data = atoi(inBuf);


if (NULL == root)
{
root = addToList(root, data);
}
else
{
temp = addToList(root, data);
if (NULL == temp)
{
printf("Failed to add - good bye\n");
return -1;
}
}

我正在尝试创建一个新函数来处理插入

最佳答案

继续使用“%s”“%c”读取命令。请注意,%c 之前有一个空格:这是为了在读取字符之前消耗换行符(尝试不使用空格,看看会发生什么)。

当您读取 fd 时,发出另一个 scanf("%d", ...) 来获取数字.

对于i,您只需发出scanf("%d%d", ...),然后检查其返回值。如果是1,那么只读取了一个数字。如果是2,则有两个整数。

尝试读取下一个命令时,不要忘记检查EOF

关于c - 在c中将一个值插入到链表的中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com