gpt4 book ai didi

当我调用函数时 C++ 列表程序卡住

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

此代码必须在字符 'q' 之前插入字符 'p' 多少次 'q' 在列表中出现。

当我调用函数 insert_before (insert_before('q','p') ) 时,我的程序卡住了。我不在这里写所有的代码。该程序的其余部分工作正常。

struct node
{
char character;
node* next;
};
node *fisrt , *end;
void insert_before(char val_search,char val_inserted)
{
node *c,*a;
c=first;
do {
if (c->next->character==val_search)
{
a= new node ;
a->character=val_inserted ;
a->next=c->next;
c->next=a;
c=c->next;
}
else
c=c->next;
} while (c) ;
}

最佳答案

当您找到值 p 时,您将在找到的条目之前插入一个新条目。

这意味着,下次您将再次找到相同的条目并在找到的条目之前插入另一个新条目

+---+  +---+
| x |->| p |
+---+ +---+
c

会变成

+---+  +---+  +---+
| x |->| q |->| p |
+---+ +---+ +---+
c

然后会变成

+---+  +---+  +---+  +---+
| x |->| q |->| q |->| p |
+---+ +---+ +---+ +---+
c

等等。

因为这永远不会结束(直到内存不足),所以程序似乎卡住了。

关于当我调用函数时 C++ 列表程序卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40030942/

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