C++ 具有节点删除功能的链表问题

C++ 具有节点删除功能的链表问题,c++,linked-list,nodes,delete-operator,C++,Linked List,Nodes,Delete Operator,我目前正在研究一个链表,链表的前面存储偶数整数,后面存储奇数整数。对我来说,一切都很好,除了我的删除功能,它接受用户输入他们是要删除偶数还是奇数,并使用它作为提示从列表的前面或后面删除。以下是我的节点删除功能的代码: void Staque::pop(char EvenOrOdd) { if (!empty()) { if (EvenOrOdd == 'O' || 'o') { //Creating pointers to

我目前正在研究一个链表,链表的前面存储偶数整数,后面存储奇数整数。对我来说,一切都很好,除了我的删除功能,它接受用户输入他们是要删除偶数还是奇数,并使用它作为提示从列表的前面或后面删除。以下是我的节点删除功能的代码:

void Staque::pop(char EvenOrOdd)
{
    if (!empty())
    {
        if (EvenOrOdd == 'O' || 'o')
        {
            //Creating pointers to find end of Staque
            Staque::NodePointer prevPtr = myTop, //Pointer to find penultimate Node and set "next" value to 0
                currentPtr = myTop; //Pointer to find Node to delete

            //Assigning pointers to corresponding nodes
            while (prevPtr->next->next != 0)
            {
                prevPtr = prevPtr->next;
            }
            while (currentPtr->next != 0)
            {
                currentPtr = currentPtr->next;
            }

            //Deleting the last node in the Staque and setting "next" value of new end to 0
            delete currentPtr;
            prevPtr->next = 0;
        }
        else if (EvenOrOdd == 'e' || 'E')
        {
            Staque::NodePointer ptr = myTop;
            myTop = myTop->next;
            delete ptr;
        }
    }
    else
    {
        cerr << "Stack is empty -- can't remove a value \n";
    }
void statque::pop(char EvenOrOdd)
{
如果(!empty())
{
if(EvenOrOdd=='O'| |'O')
{
//创建指针以查找Staque的结尾
statque::nodepenter prevPtr=myTop,//指向倒数第二个节点并将“next”值设置为0的指针
currentPtr=myTop;//查找要删除的节点的指针
//将指针分配给相应的节点
同时(上一步->下一步->下一步!=0)
{
prevPtr=prevPtr->next;
}
同时(当前PTR->下一步!=0)
{
currentPtr=currentPtr->next;
}
//删除状态中的最后一个节点,并将new end的“next”值设置为0
删除当前PTR;
prevPtr->next=0;
}
else if(EvenOrOdd=='e'| |'e')
{
statque::nodepenterptr=myTop;
myTop=myTop->next;
删除ptr;
}
}
其他的
{
cerr变化

与另一个类似,即
else if(EvenOrOdd==“e”| |“e”)


注意,对于

if (EvenOrOdd == 'O' || 'o')
这对我来说是一样的

if (EvenOrOdd == 'O' || (bool)'o')
进一步

if (EvenOrOdd == 'O' || true)
if (true)
进一步

if (EvenOrOdd == 'O' || true)
if (true)

非常感谢。我真不敢相信,在我看了这么多次之后,我竟然忘记了这样的事情。我需要更加小心我的语法。