gpt4 book ai didi

c - Pcointing 到链表的前一个节点

转载 作者:行者123 更新时间:2023-11-30 16:22:49 27 4
gpt4 key购买 nike

我定义了链表的节点,如下所示:

(“下一个”部分指向下一个节点,“上一个”部分指向上一个节点)

typedef struct node{
char val;
struct node* next;
struct node* previous;
}node_t;

我已经初始化了三个节点,如下所示:

node_t* head=NULL;
head=malloc(sizeof(node_t));
head->val='a';
head->previous=NULL;
head->next=malloc(sizeof(node_t));
head->next->val='b';
head->next->previous=head;
head->next->next=malloc(sizeof(node_t));
head->next->next->val='c';
head->next->next->previous=head->next;
head->next->next->next=NULL;
node_t*current=head;

我的目标是,每当用户输入“R”时,我们当前的指针将指向下一个节点,每当用户输入“L”时,我们当前的指针将指向前一个节点,每当我们输入“P”然后我们可以输入一个字母(char c)将该字母作为新节点添加到当前节点之前。

我这部分的代码是这样的:

char input;
scanf("%c",&input);
if(input=='R'){
current=current->next;
}
if(input=='L'){
current=current->previous;
}
if(input=='P'){
char c;
scanf(" %c",&c);
node_t * new=malloc(sizeof(node_t));
new->val=c;
new->next=current;
new->previous=current->previous;
current->previous->next=new;//need help to correct this part
}

“R”和“L”部分工作正常,但我不知道为什么“P”部分不添加节点。

例如:

输入:

R

Pj

输出:

jbc

但是这段代码的输出仍然是bc。

最佳答案

您的 P 情况代码不会更改当前->下一个->上一个,也不会更改当前

您可能还希望考虑可能更改 head 的情况。

关于c - Pcointing 到链表的前一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276611/

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