C++ pop是如何使用链表在堆栈中工作的?
在这里的pop函数中,在top被分配给temp之后,其写入的top=top->link,但是top=top->link如何使其指向其后节点 top=top->link意味着向前移动并指向其前面的节点,在这里它应该为NULLC++ pop是如何使用链表在堆栈中工作的?,c++,data-structures,linked-list,stack,C++,Data Structures,Linked List,Stack,在这里的pop函数中,在top被分配给temp之后,其写入的top=top->link,但是top=top->link如何使其指向其后节点 top=top->link意味着向前移动并指向其前面的节点,在这里它应该为NULL 编辑:不能添加到pop中。现在让问题更具体一点,你怎么可能是对的。Pop here将删除第一个对象,并且现在将top设置为NULL,即使堆栈中有一些对象。要解决这个问题,您应该做的是更改链接方向-这意味着每个对象都将指向较低的对象。在这种情况下,移除顶部时,您将能够检索堆栈中
编辑:不能添加到pop中。现在让问题更具体一点,你怎么可能是对的。Pop here将删除第一个对象,并且现在将top设置为NULL,即使堆栈中有一些对象。要解决这个问题,您应该做的是更改链接方向-这意味着每个对象都将指向较低的对象。在这种情况下,移除顶部时,您将能够检索堆栈中较低的下一个对象 更改:
temp->data=num;
temp->link=top;
top=temp;
致:
并为空堆栈添加一个特例,其中top->link=temp;将不合法,如:
if(top==NULL){
temp->data=num;
top=temp;
top->link=NULL;
}
编辑:
你的逻辑应该是这样的:
空堆栈只有一个空的\u ptr top
推送:如果堆栈为空-top现在是新元素,它的链接为null\u ptr,否则-top的链接现在是新元素,top变成新元素,新元素的链接为null\u ptr
弹出:如果堆栈为空,则不执行任何操作,否则-打印top的数据,将top另存为temp,top成为top的链接堆栈中较低的元素,打印temp的数据并删除temp,您是对的。Pop here将删除第一个对象,并且现在将top设置为NULL,即使堆栈中有一些对象。要解决这个问题,您应该做的是更改链接方向-这意味着每个对象都将指向较低的对象。在这种情况下,移除顶部时,您将能够检索堆栈中较低的下一个对象 更改:
temp->data=num;
temp->link=top;
top=temp;
致:
并为空堆栈添加一个特例,其中top->link=temp;将不合法,如:
if(top==NULL){
temp->data=num;
top=temp;
top->link=NULL;
}
编辑:
你的逻辑应该是这样的:
空堆栈只有一个空的\u ptr top
推送:如果堆栈为空-top现在是新元素,它的链接为null\u ptr,否则-top的链接现在是新元素,top变成新元素,新元素的链接为null\u ptr
pop:如果堆栈为空,则不执行任何操作,否则-打印top的数据,将top另存为temp,top成为top的链接堆栈中较低的元素,打印temp的数据并删除temp。此实现是正确的。你不需要改变任何事情 推力器的工作原理 当我们试图在这个堆栈中添加一个元素时,我们会创建一个新节点,并使其成为链接列表的头部。因此,添加的最后一个元素将始终是链接列表的标题 Pop的工作原理
当我们尝试弹出一个元素时,我们只需执行top-=top->link。这意味着我们刚刚将head节点更改为堆栈中添加的上一个元素。此实现是正确的。你不需要改变任何事情 推力器的工作原理 当我们试图在这个堆栈中添加一个元素时,我们会创建一个新节点,并使其成为链接列表的头部。因此,添加的最后一个元素将始终是链接列表的标题 Pop的工作原理
当我们尝试弹出一个元素时,我们只需执行top-=top->link。这意味着我们刚刚将head节点更改为堆栈中添加的上一个元素。否,但我要问的是,如果将coutlink设置为NULL,则应该在将NULL指定给top之前进行打印。pop函数应该是这样的:if top!=空打印顶部。将top->link分配给top您误解了:OP的代码是正确的。没有什么需要改变的。op问的是它为什么工作,不是关于一个问题。不,但我问的是,如果你把coutlink设置为NULL,你应该在将NULL设置为top之前打印。pop函数应该是这样的:if top!=空打印顶部。将top->link分配给top您误解了:OP的代码是正确的。没有什么需要改变的。op是问它为什么有效,而不是问一个问题。@FirstStep:你在说什么?链接指向下方。顶部->链接指向下一个元素,即弹出后的新顶部元素。@第一步:你在说什么?链接指向下方。顶部->链接指向下一个元素,即弹出后的新顶部元素。