Kullanıcının bir öğenin değerini girmesi durumunda, adresin * npt olarak adlandırılan yeni bir Düğüme kaydedileceği Bul adlı bir yöntem kullanıyorum.Düğümün önceki düğümün adresi kullanılarak silinmesi
* npt argüman olarak kullanıldığında, npt olarak kaydedilen değerden sonra değeri kaldıran bir silme yöntemi oluşturmam gerekiyordu.
Örneğin, bu benim listemizse: 134, 564, 674, 253 ve Find için 674 girin, sonra 253 silindi.
void LinkedList::Delete(Node *PrePosition){
Node *temp = PrePosition -> next;
PrePosition->next = PrePosition->next->next;
delete temp;
}
olsa bu sorun, şu anda baş düğümünü silmek için bir yol yoktur olmasıdır:
Şu anda, bu silme fonksiyonu için benim kodudur. Bana gerçekten yardım etmeyen tek ipucu şu: Bu, listenin başını silmek istiyorsanız PrePosition is NULL.
Tahminen 'LinkedList' sınıf listesinin başını bağlayan bir' Düğüm * 'head' denilen' işaretçi vardır. Yani argümanınız için bir "NULL" alırsanız, o zaman kafa işaretçisini kullanarak aynı kodu çalıştırın. –
Bu, muhtemelen bölümümde inanılmaz derecede aptalca görünecektir, ancak Bul yöntemi bir int gerektirir. Argümanı NULL olarak ayarlamak nasıl mümkün olabilir? – Bob
@Bob Kodunuz buna izin veriyorsa -1 değerini döndürebilirsiniz. –