gpt4 book ai didi

c++ - 链表 - 移动到下一个节点

转载 作者:行者123 更新时间:2023-11-28 00:53:56 25 4
gpt4 key购买 nike

所以我在处理关于玩家围坐在 table 旁的编程作业时遇到了一些麻烦。该程序应该能够在刚刚轮到的玩家之后添加玩家。该作业应该向我们展示如何将数据添加到链表中的任何位置。所以当我使用 PLAY 命令时,我的问题就出现了。这应该允许一个玩家转一圈。

例如,如果有玩家 A、B 和 C,并且执行了 PLAY 命令,它会在控制台上显示“玩家 A Takes a turn”。如果再次执行PLAY,会显示“Player B takes a turn”。

我的代码允许列表中的第一个玩家进行游戏,但不会移动到下一个节点/玩家。

void CircleList::play()
{
LinkedListOfPlayersNode *p=(*pFront).pNext;
if (p->pData!=NULL)
{
cout<<p->pData->getName()+" takes a turn\n";
p-> pNext; //My attempt to move to the next node.
}
else
{
cout<<"There are no players. Please ADD a player.\n";
}
}

所以这显然行不通。有人可以向我解释一下我将如何转移到下一个玩家吗?

PS - 代码在 C++ 中

最佳答案

您的类(class)中需要一个成员保留最后一个轮到的玩家。

class CircleList
{
//...
PlayerNode* pLastPlayer;
};

最初,它被设置为 pFront,每次调用 play 时,您将它移动到下一个播放器。

void CircleList::play()
{
//logic with pLastPlayer here

//at the end move it
pLastPlayer = pLastPlayer->next;
}

关于c++ - 链表 - 移动到下一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555561/

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