Witam
mam taki problem, potrzebuje napisac program który dodaje i usuwa elemnty z list na końcu, srodku i początku tej listy.
mam taki program bazowy, ale niestety jest to powyzej moich mozliwośći żeby go przerobic gdyż go dokładnie nie rozumiem.
Nie oczekuję napisania za mnie całego programu od nowa (chociaz też by było fajnie:) ) ale chociaz że ktoś mi wytłumaczy co ten program robi, tzn, niektóre elementy rozumiem ale przy powiązaniu w całość jest gorzej, może jakies komentarze do tego programu obszerne itp. no i moze jak sie zabrać do przerabiania, jakiś szkielet nowego programu.
A o to ten pprogram bazowy:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char *dane;
void *next;
} Element;
typedef struct
{
void *first;
int ilosc;
} Naglowek;
Naglowek naglowek;
int dodaj(char *data)
{
Element *tempElement = malloc(sizeof(Element));
tempElement->next = NULL;
tempElement->dane = strdup(data);
if(naglowek.first == NULL) {
naglowek.first = tempElement;
} else {
Element *tempNext = naglowek.first;
while(tempNext->next != NULL)
tempNext = tempNext->next;
tempNext->next = tempElement;
}
naglowek.ilosc++;
return 0;
}
int main()
{
naglowek.first = NULL;
naglowek.ilosc = 0;
char nazwisko[20];
int i;
for(i=0; i<5; i++) {
scanf("%s",nazwisko);
dodaj(nazwisko);
}
Element *temp = naglowek.first;
printf("%s\n",temp->dane);
while(temp->next != NULL)
{
temp = temp->next;
printf("%s\n",temp->dane);
}
return 0;
}
Za wszelką pomoce wielkie dzięki