我想檢查一個實體是否存在於給定的鏈表中。這是我的代碼:C++鏈表簡單問題
bool LinkedList::existByID(int ID)
{
//create node to search through the list
Node * helpNode;
//start it at the top of the list
helpNode = head;
if (head == NULL)
{
return false;
}
//while the item has not yet been found
while ((helpNode->data->indicatedEntity->getID() != ID) && (helpNode->data != NULL))
{
if (helpNode->data->indicatedEntity->getID() == ID)
{
//return true - the data exists
return true;
}
else
//if the data has not been found, move on
helpNode=helpNode->next;
}
//if the data has not been found and the end of the
//list has been reached, return false - the item does
//not exist
return false;
}
從我標示爲「問題行」的路線,部分if語句
(helpNode->data != NULL)
我得到錯誤CXX0017(符號「」未找到)和錯誤CXX0030(不能評估表達式)。
如果在鏈表中沒有實體,換句話說,如果頭爲空,則此代碼有效。
節點構造是這樣的:
LinkedList::Node::Node()
{
next=NULL;
data=NULL;
}
我也用線試了一下:
(helpNode != NULL)
和節點構造
LinkedList::Node::Node(){}
所有組合返回相同錯誤。有什麼建議麼?
我想這是作業嗎?如果是這樣,請將其標記爲這樣(以便答案可以讓您向正確的方向推進,而不是告訴您該做什麼)。如果沒有,使用'std :: list'。 – sbi 2011-05-20 07:23:54
請發佈確切的錯誤消息。我假設它的運行時錯誤... – Mayank 2011-05-20 07:25:53
我已經看到至少有一個問題 - 條件必須改寫爲 (helpNode-> data!= NULL)&&(helpNode-> data-> notedEntity-> getID()! = ID) 在解引用它之前,您必須檢查指針是否爲空。 – Muxecoid 2011-05-20 07:26:03