Bu nedenle, iki bağlı bir listede işlemler yapmaya çalışıyorum ve silme mantığını uygulamayı denedim, ancak bir çeşit geçersiz hata gösteriyor. Lütfen bu kodda neyin yanlış olduğunu söyle. Hata mesajı, kod satırının yanında yazılmıştır.Çift Bağlantılı Liste Hatası
void getnewnode(int x)
{
struct node* temp = (struct node*)malloc(sizeof(struct node*));
temp->data = x;
temp->next = NULL;
temp->prev = NULL;
}
takın fonksiyonunu:
Fonksiyon yeni bir düğüm almak için
void insertatbeg(int x)
{
struct node* newnode=getnewnode(x); /* void value not ignored as it ought to be. */
if(head==NULL)
{
head = newnode;
}
else
{
head->prev = newnode;
newnode->next = head;
head = newnode;
}
}
silin (n'inci düğümü) işlevi:
: Buradavoid delete(int n)
{
struct node* temp1=head;
int i;
if(temp1 == NULL)
return;
for(i = 0; i < n-2; i++)
{
temp1 = temp1->next;
}
struct node* temp2 = temp1->next;
(temp2->next)->prev = temp1;
temp1->next = temp2->next;
free(temp2);
}
ana işlevi olan
struct node /* List called node */
{
struct node* next;
int data;
struct node* prev;
};
struct node* head;
void insertatbeg(int x);
void delete(int n);
int main()
{
int x;
head = NULL;
insertatbeg(x);
insertatbeg(x);
insertatbeg(x);
delete(2);
}
Özellikle
void getnewnode(int x)
{
struct node* temp = (struct node*)malloc(sizeof(struct node*));
temp->data = x;
temp->next = NULL;
temp->prev = NULL;
}
, ilk satırda:
Lütfen kodunuzun okunabilir olmasını sağlayın. –
Ve lütfen tam hata mesajını gönderin. –
işlevi: 'getnewnode()', sorunun hatalarını ayıklamak açısından çok önemli görünüyor. ve 'delete()' ın problemle ilgisi yok, bu yüzden neden göndersiniz? Lütfen kodu yazınız: 'getnewnode()'; – user3629249