当前位置: 首页 > 知识库问答 >
问题:

C堆叠列表推送功能打印下一个/上一个元素

韩烈
2023-03-14

我刚才有一个关于打印前一个值的问题。当代码推到堆栈顶部时,它会很好地打印出所有内容,但当我尝试输出前一个头时,它只指向一个内存地址。

void linkedListStack::push(int v)
{
    listNode *newNode = new listNode;    
    newNode->value = v;
    newNode->next = NULL;
    if (top != NULL)
    {
        newNode->next = top;
    }
    top = newNode;
    cout <<"Pushed "<< newNode->value << " onto the top of the stack." << endl;
    cout << "Previous is: " << newNode->next << endl;

}

push函数从文件中读取整数并将数据推送到堆栈中,但我不确定如何获得要打印的下一个/上一个值。

编辑:

 newNode->next->value

已经试过,但还是坏了。

共有3个答案

酆恩
2023-03-14

如果新节点-

如果没有下一个节点的值,也无法打印该节点的值。因此,请检查:

if(newnode->next)
    cout << "Previous is: " << newNode->next->value << endl;
郎和通
2023-03-14

如果它是堆栈上第一个推送的节点,则输出将中断尝试访问新节点(您将访问nullptrs)。在尝试打印之前测试null。

编辑:这个答案应该与逻辑的建议结合起来。

萧焱
2023-03-14

<代码>新建节点-

cout << "Previous is: " << newNode->next << endl;

打印堆栈中下一个元素的内存地址。您需要的是下一个元素的值。当您有一个指向对象的指针并且需要访问对象中的某些内容时,可以使用箭头操作符(-

cout << "Previous is: " << newNode->next->value << endl;

此外,如果没有下一个元素(插入第一个元素时总是这样),该怎么办?在您的情况下,newNode-

if (newNode->next != NULL)
{
    cout << "Previous is: " << newNode->next->value << endl;
}
else
{   
    cout << "No previous element" << endl;
}

 类似资料:
  • 问题内容: 我是python的新手,正在尝试在一行中扫描由空格分隔的多个数字(以“ 1 2 3”为例),并将其添加到int列表中。我通过使用以下方法做到了: 显然它是可行的,因为当我键入“ 1 2 3”并执行输出时: [1,2,3] 但是我想将其打印在没有括号的一行中,并在数字之间留一个空格,如下所示: 1 2 3 我试着做: 但我得到一个错误: 2 3追溯(最近一次通话最后一次): 打印(arr

  • 问题内容: 我有以下JavaScript代码: 我如何确保仅在完成后调用? 问题答案: 指定一个匿名回调,并使function1接受它:

  • 我想在java中创建一个方法,该方法接收两个字符串列表:

  • 我是一个全新的领域,我现在有两个独立的下拉菜单。我正在尝试使用户能够在同一时间只能从两者中的一个进行选择。例如,如果用户从中选择某项内容,然后从中选择另一项内容,则变为未选中。 下面是我在html部分中的片段 这里是JS 这是一个简单的演示。你可以注意到你可以同时选择一辆汽车和一辆卡车。此时应仅为汽车或卡车:https://jsfidle.net/j82ryu5k/2/

  • 问题内容: 基本上,如果我有任意函数的切片或数组,如何选择仅返回int的函数或仅选择采用int的函数? 我认为我需要使用反射包,但是仅仅阅读文档并不能真正帮助我准确地知道如何做。 问题答案: 该程序打印以a 为参数或返回a 的函数: 我认为代码是不言自明的

  • 我非常困惑,因为如何才能从另一个方法获取ArrayList,并将其打印到另一方法?所以我这里的问题是,我的代码是关于学生注册系统的,它有两个方法,即admin和student,所以从admin方法,我们可以添加我们想要的数组,当我们在admin方法中打印出来时,它可以正常工作。但当我试图用学生法打印出来时,似乎没有用。代码如下: 我真的希望有人能理解我的问题,并努力解决它..请:(也谢谢你 以下是