- Codice:
#include <stdio.h>
#include <stdlib.h>
typedef struct node_
{
int data;
struct node_* next;
}node;
void insert(node** l, char carattere)
{
node* new = NULL;
new = (node*) malloc(sizeof(node));
if(new)
{
while(*l && carattere > (*l)->data)
{
l = &(*l)->next;
}
new->data = carattere;
new->next = *l;
*l = new;
}
else
puts("memoria non disponibile\n");
}
void print(node* l)
{
char primo = l->data;
if(!l)
printf("la lista è vuota\n");
else
{
do
{
printf("|%c|",l->data);
l = l->next;
}
while(l->data != primo);
}
puts("\n");
}
void init(node** l)
{
char carattere = '9';
for(unsigned int i = 0; i < 10; i++, carattere--)
{
insert(l, carattere);
}
/*char carattere;
unsigned int count = 0;
while( count < 10)
{
char c;
scanf("%c", &c);
insert(l, carattere);
count++;
}*/
node* temp = *l;
while(temp->next)
{
temp = temp->next;
}
temp->next = *l;
}
int main()
{
node* l = NULL;
init(&l);
print(l);
}
quello che vorrei fare in teoria sarebbe inserire da tastiera un numero indefinito di volte dei caratteri
e di volta in volta stamparli in ordine nella lista, ma quando ho provato ad usare l'altra parte di codice della init (scritto giusto per prova), il programma si è bloccato.