考虑以下列表:
[LinkNode *头-LinkNode * node1-LinkNode * node2]
我正在创建一个FIFO堆栈。
我调用pop(),我想弹出node1。
LinkNode::LinkNode(int numIn) {
this->numIn = numIn;
next = null;
}
.
.
.
int LinkNode::pop() {
Link * temp = head->next;
head = temp->next;
int popped = head->nodeNum;
delete temp;
Return numOut;
题:
1)头应该是指针还是LinkNode *?
2)Link * temp是在调用堆栈上创建的,当弹出完成时,temp是否不会自动删除?
3)我的主要困惑是temp-> next的值是什么?这是否指向等于node2的node1.next?
感谢您的帮助?
我的参考文献是Weiss编写的C ++ for Java Programmers。
最佳答案
LinkNode *
是一个指针。所以我不确定你在问什么。
该变量超出范围,但这不会自动删除动态分配的数据。在C ++中,如果您动态分配数据(调用new
),则需要释放它(调用delete
)