Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct Lista{
- char *nome;
- struct Lista *pNext;
- };
- struct Lista* delete(char *nome, struct Lista *lista)
- {
- if (lista == NULL)
- {
- printf("Nome nao existente.\n");
- return lista;
- }
- struct Lista *aux = lista, *cabeca = lista;
- char flag = 0b0;
- while (lista->pNext != NULL && strcmp(nome,lista->nome) != 0)
- {
- aux = lista;
- lista = lista->pNext;
- flag = 0b1;
- }
- if (strcmp(nome,lista->nome) != 0)
- {
- printf("Nome nao existente.\n");
- return cabeca;
- }
- if (flag == 1)
- {
- aux->pNext = lista->pNext;
- free(lista);
- return cabeca;
- }
- else
- {
- cabeca = lista->pNext;
- free(lista);
- return cabeca;
- }
- }
- void insertInOrder(char *nome, struct Lista **lista)
- {
- int a, b;
- struct Lista *aux;
- if (*lista == NULL)
- {
- *lista = malloc(sizeof(struct Lista));
- (*lista)->nome = nome;
- (*lista)->pNext = NULL;
- return;
- }
- if (strcmp(nome,(*lista)->nome) == 0)
- {
- printf("Nome ja esta na lista\n");
- return;
- }
- a = (int)*(*lista)->nome;
- b = (int)*nome;
- if ((*lista)->pNext == NULL)
- {
- if (a > b)
- {
- (*lista)->pNext = malloc(sizeof(struct Lista));
- *(*lista)->pNext = **lista;
- (*lista)->pNext->pNext = NULL;
- (*lista)->nome = nome;
- }
- else
- {
- (*lista)->pNext = malloc(sizeof(struct Lista));
- (*lista)->pNext->nome = nome;
- (*lista)->pNext->pNext = NULL;
- }
- }
- else
- {
- if (a > b)
- {
- aux = (*lista);
- (*lista) = malloc(sizeof(struct Lista));
- (*lista)->nome = nome;
- (*lista)->pNext = aux;
- }
- else
- insertInOrder(nome,&(*lista)->pNext);
- }
- return;
- }
- void main()
- {
- struct Lista *lista = NULL;
- insertInOrder("Ernie Wells",&lista);
- insertInOrder("Casworan Wells",&lista);
- insertInOrder("Dunmore Wells",&lista);
- insertInOrder("Northcliff Wells",&lista);
- insertInOrder("Kam Wells",&lista);
- insertInOrder("Trymian Wells",&lista);
- insertInOrder("Aedan Wells",&lista);
- lista = delete("Northcliff Wells",lista);
- insertInOrder("Isaiah Wells",&lista);
- lista = delete("Casworan Wells",lista);
- insertInOrder("Chaunceler Wells",&lista);
- insertInOrder("Asriel Wells",&lista);
- lista = delete("Aedan Wells",lista);
- for (; lista != NULL; lista = lista->pNext)
- printf("%s\n", lista->nome);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement