posto il programma intero:
codice:
// inserimento lista ed eliminazione
#include <stdio.h>
#include <stdlib.h>
struct listNode {
int info;
struct listNode *nextPtr;
};
typedef struct listNode ListNode;
typedef ListNode *ListNodePtr;
void inserimento( ListNodePtr *topPtr );
void stampa( ListNodePtr topPtr );
void elimina( ListNodePtr *topPtr );
int main( void ) {
ListNodePtr startPtr = NULL;
inserimento( &startPtr );
stampa( startPtr );
elimina( &startPtr );
stampa( startPtr );
}
void elimina( ListNodePtr *topPtr ) {
ListNodePtr currentPtr;
ListNodePtr tempPtr;
int x;
currentPtr = *topPtr;
printf("Inserisci elemento da eliminare\n");
scanf("%d", &x);
while( currentPtr != NULL ) {
if(currentPtr->info == x ) {
tempPtr = currentPtr;
currentPtr = currentPtr->nextPtr;
free(tempPtr);
} else {
currentPtr = currentPtr->nextPtr;
}
}
}
void stampa( ListNodePtr topPtr) {
ListNodePtr currentPtr;
currentPtr = topPtr;
while( currentPtr != NULL ) {
printf("%d--> ", currentPtr->info);
currentPtr = currentPtr->nextPtr;
}
printf("NULL\n");
}
void inserimento( ListNodePtr *topPtr ) {
ListNodePtr newPtr;
int n, i, a;
printf("Inserisci numero volte\n");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("Inserisci valore\n");
scanf("%d", &a);
newPtr = malloc( sizeof( ListNode ) );
newPtr->info = a;
newPtr->nextPtr = *topPtr;
*topPtr = newPtr;
}
return;
}