我將表明,正在實施我的pop方法下面我堆的程序的一部分:pop方法沒有給予期望的輸出
for (int i=0; i<10; i++) // pop 10 times
s1.Pop();
cout << "*pop 10 times\ns1=" << s1 << endl;
cout << "s1.Size()=" << s1.Size() << endl;
cout << "s1.IsEmpty()=" << ((s1.IsEmpty()) ? "T" : "F") << endl;
cout << "s1.IsFull()=" << ((s1.IsFull()) ? "T" : "F") << endl;
cout << "s1.Peek()=" << s1.Peek() << endl;
cout << endl;
現在,我將表明,這個代碼部分使用
pop方法T Pop()
{
Node* temp = top;
if(IsEmpty())
{
return NULL;
}
top = temp->link;
return temp->data;
num_items--;
}
我得到的輸出中幾乎是正確的,但有一些是關閉的,我將顯示輸出我得到如下:
我現在將顯示預期輸出:
爲了讓更多的清晰,我的名單的最大尺寸是30,由於某種原因,我的項數變量沒有被減少,我懷疑我需要一個循環來檢查東西減少,但我不知道我應該使用什麼。我試過if(top != NULL){} //placing the rest of the code from Node* temp = top; to num_items--; into brackets