Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Sziasztok Mesterek!

    Van egy kódom alant, amiben neveket tároltam el láncolt listával. Van hozzá egy delete nevű fgv is, ami azt szeretné megcsinálni, hogy vár egy int számot és azt az elemet amit megadunk a szám által, törli a listából. A main-ben, hogy kellene hivatkozni a delete fgv-nek erre a számra?

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    struct cn
    {

    char *name;
    struct cn *next;
    };

    struct cn *head = NULL;

    void insert(char *c)
    {
    struct cn *new;

    new = (struct cn*)malloc(sizeof(struct cn));
    new->name=c;
    new->next=head;
    head=new;
    }
    void printout()
    {
    struct cn *current;

    current = head;
    while(current)
    {
    printf("%s", current->name);
    current= current->next;
    }
    }
    void delete(int del)
    {
    struct cn *current, *previous;
    previous = 0;

    current = head;
    while(current)
    {
    if(current->name == del)
    {
    struct cn *temp = current;
    if(previous)
    {
    previous->next=current->next;
    }
    else
    {
    head = current->next;
    }
    current=current->next;
    free(temp);
    }
    else
    {
    previous=current;
    current=current->next;
    }

    }

    }

    int main()
    {

    insert("Eszter\n");
    insert("Bea\n");
    insert("Nóra\n");
    insert("Béla\n");
    insert("Peti\n");
    printout();
    return 0;
    }

    Érthető a kérdésem?

    Érthető a kérdésem?

    Nem :N
    A listádban nevek vannak, tehát az if(current->name == del) értelmetlen.
    Vagy név szerint akarsz törölni, vagy index szerint. Ha név szerint akkor nyilván nem egy int paramétert kell átadni, ha meg index szerint akkor nem a name mezővel kell összehasonlítani.

Új hozzászólás Aktív témák