我想在C++中做一個堆棧實現,但是當我嘗試打印堆棧時,它只打印第一個元素而不是整個堆棧。 我測試過了,我很確定我的Push功能是正確的,但我不確定。C++堆棧推/打印執行
#include <stdio.h>
#include <stdlib.h>
#include "stack.h"
int main(){
StackElement *stack = new StackElement();
stack->data = 20;
stack->Push(30,stack);
stack->Push(40,stack);
stack->Print(stack);
}
#include <stdio.h>
#include <stdlib.h>
class StackElement{
public:
int data;
StackElement* next;
StackElement();
void StackElement::Push(int value, StackElement *oldElement);
void StackElement::Print(StackElement *element);
};
StackElement::StackElement(){
next = NULL;
}
void StackElement::Push(int value, StackElement *oldElement){
StackElement *newElement = new StackElement();
newElement->data = value;
printf("Element added to stack: %d\n", newElement->data);
oldElement->next = newElement;
}
void StackElement::Print(StackElement *element){
while(element->next != NULL){
printf("%d\n",element->data);
element = element->next;
}
}
請正確縮進您的代碼,每行一個語句。 – akappa
對不起。目前我正在研究它。 – CoffeeIsProgramming
您的'推'和'打印'都是錯誤的。你首先需要哪些幫助? – Beta