ต้องการลบNode ที่ไม่ = dataOut (ordered linkedlist)
สมมุติว่า dataOut = 3;
1 > 2 > 3 > 3 > 4 > nullptr; //after function calls
จะเหลือ 3 > 3 > nullptr // คือลบทุก node ที่ไม่ตรงกับ dataOut ที่ส่งเข้ามาครับ
return true if success kub.
ไปถามอาจารย์หลายรอบแล้วครับ แกไม่ยอมบอก เข้มงวดมาก บอกแบบอ้อมค้อม ให้คิดเอาเอง คิดจนหัวจะระเบิดแล้ว
ต้องส่งวันจันด้วย T^T
โค้ดด้านล่างผิดนะครับ เป็นไอเดียของผมเอง
template<typename TYPE>
bool linkedList<TYPE>::removeAllBut(const & dataOut) //function definition
{
Node<TYPE> *pTemp = front;
Node<TYPE *pPrev = nullptr;
while(pTemp)
{
if((pPrev) && (pPrev->data != dataOut)) // ผิดแถวนี้แหละครับ
{
delete pPrev; // ลบเฉพาะโน้ตที่ไม่เท่ากับ dataOut
success = true;
}
pPrev = pTemp; //traverse เลื่อนโน้ตทุกครั้ง ไม่จำเป็นว่าจะเท่าหรือไม่เท่า dataOut
pTemp = pTemp -> next;
}
return success;
}
//******************************************************
int main() //บางส่วนของ main
{
LinkedList<int> list;
val = 3;
cout << "Remove all but "" val << ": ";
if(list.removeAllBut(val)) // function calls
{
list.display(); //function calls
}
//********************************************************
Struct Node //class & struct ที่เกี่ยวกับฟังชั่นครับ
{
TYPE data;
Node<TYPE> *next;
}
Class linkedList
{
private: Node<TYPE> *front;
public: bool removeAllBut(const TYPE dataOut);
}
Need helps kub C++ LinkedList Nodes remove function
สมมุติว่า dataOut = 3;
1 > 2 > 3 > 3 > 4 > nullptr; //after function calls
จะเหลือ 3 > 3 > nullptr // คือลบทุก node ที่ไม่ตรงกับ dataOut ที่ส่งเข้ามาครับ
return true if success kub.
ไปถามอาจารย์หลายรอบแล้วครับ แกไม่ยอมบอก เข้มงวดมาก บอกแบบอ้อมค้อม ให้คิดเอาเอง คิดจนหัวจะระเบิดแล้ว
ต้องส่งวันจันด้วย T^T
โค้ดด้านล่างผิดนะครับ เป็นไอเดียของผมเอง
template<typename TYPE>
bool linkedList<TYPE>::removeAllBut(const & dataOut) //function definition
{
Node<TYPE> *pTemp = front;
Node<TYPE *pPrev = nullptr;
while(pTemp)
{
if((pPrev) && (pPrev->data != dataOut)) // ผิดแถวนี้แหละครับ
{
delete pPrev; // ลบเฉพาะโน้ตที่ไม่เท่ากับ dataOut
success = true;
}
pPrev = pTemp; //traverse เลื่อนโน้ตทุกครั้ง ไม่จำเป็นว่าจะเท่าหรือไม่เท่า dataOut
pTemp = pTemp -> next;
}
return success;
}
//******************************************************
int main() //บางส่วนของ main
{
LinkedList<int> list;
val = 3;
cout << "Remove all but "" val << ": ";
if(list.removeAllBut(val)) // function calls
{
list.display(); //function calls
}
//********************************************************
Struct Node //class & struct ที่เกี่ยวกับฟังชั่นครับ
{
TYPE data;
Node<TYPE> *next;
}
Class linkedList
{
private: Node<TYPE> *front;
public: bool removeAllBut(const TYPE dataOut);
}