Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- typedef struct no
- {
- int dados;
- struct no *prox;
- }Tlista;
- typedef struct
- {
- Tlista *inicio;
- Tlista *fim;
- }lista;
- void criar_lista(lista *l)
- {
- l->inicio = NULL;
- l->fim = NULL;
- }
- int lista_vazia(lista *l)
- {
- if(l->inicio == NULL)
- return 1;
- else
- return 0;
- }
- void listar_inicio(lista *l, int dados) //1
- {
- Tlista *aux = (Tlista*)malloc(sizeof(Tlista));
- aux->dados = dados;
- aux->prox = NULL;
- if(lista_vazia(l))
- l->inicio = aux;
- else
- {
- aux->prox = l->inicio;
- l->inicio = aux;
- }
- }
- void listar_fim(lista *l, int dados) //2
- {
- Tlista *aux = (Tlista*)malloc(sizeof(Tlista));
- aux->dados = dados;
- aux->prox = NULL;
- if(lista_vazia(l))
- {
- l->inicio = aux;
- }
- else
- {
- l->fim->prox = aux;
- }
- l->fim = aux;
- }
- void listar_antes(lista *l, int antes, int dados) //3
- {
- Tlista *aux;
- int cont1, cont2;
- cont1 = cont2 = 0;
- if(lista_vazia(l))
- printf("Lista Vazia!!!");
- else
- {
- aux = l->inicio;
- while(aux->prox != NULL)
- {
- if(aux->dados == dados)
- {
- l->inicio = aux->prox;
- }
- cont++;
- }
- }
- }
- void listar_depois(lista *l, int antes, int dados) //4
- {
- }
- void desenlistar_inicio(lista *l) //5
- {
- Tlista *aux;
- if(lista_vazia(l))
- printf("Lista Vazia!!!");
- else
- {
- aux = l->inicio;
- l->inicio = aux->prox;
- if(l->inicio == NULL)
- l->fim == NULL;
- free(aux);
- }
- }
- void desenlistar_fim(lista *l) //6
- {
- }
- void desenlistar_antes(lista *l, int antes) //7
- {
- }
- void desenlistar_depois(lista *l, int depois) //8
- {
- }
- void mostrar_lista(lista *l) //9
- {
- Tlista *aux;
- aux = l->inicio;
- if(lista_vazia(l))
- printf("Lista Vazia!!!");
- else
- {
- while(aux != NULL)
- {
- printf("%4d", aux->dados);
- aux = aux->prox;
- }
- }
- }
- void menu()
- {
- lista *l = (lista*)malloc(sizeof(lista*));
- criar_lista(&l);
- int opc, listar, aux;
- do
- {
- opc = listar = aux = 0;
- system("cls");
- printf("1- Listar no Início\n");
- printf("2- Listar no Fim\n");
- printf("3- Listar Antes de Algum Valor\n");
- printf("4- Enlistar Após Algum Valor\n");
- printf("5- Desenlistar no Início\n");
- printf("6- Desenlistar no Fim\n");
- printf("7- Desenlistar Antes de Algum Valor\n");
- printf("8- Desenlistar Após Algum Valor\n");
- printf("9- Mostrar Lista\n");
- printf("10- Sair\n\n>");
- scanf("%d", &opc);
- system("cls");
- switch(opc)
- {
- case 1:
- {
- printf("Digite o valor a ser Listado no Início: ");
- scanf("%d", &listar);
- listar_inicio(&l, listar);
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 2:
- {
- printf("Digite o valor a ser Listado no Fim: ");
- scanf("%d", &listar);
- listar_fim(&l, listar);
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 3:
- {
- printf("Digite o valor a ser listado antes de algum dado: ");
- scanf("%d", &listar);
- printf("\n\n");
- mostrar_lista(&l);
- printf("\n\nDigite antes de qual deste(s) valor(es) você quer listar o '%d':", listar);
- scanf("%d", &aux);
- listar_antes(&l, listar, aux);
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 4:
- {
- printf("Digite o valor a ser listado após de algum dado: ");
- scanf("%d", &listar);
- printf("\n\n");
- mostrar_lista(&l);
- printf("\n\nDigite após qual deste(s) valor(es) você quer listar o '%d':", listar);
- scanf("%d", &aux);
- listar_depois(&l, listar, aux);
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 5:
- {
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 6:
- {
- desenlistar_inicio(&l);
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 7:
- {
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 8:
- {
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 9:
- {
- mostrar_lista(&l);
- printf("\n\n\n\n");
- system("pause");
- break;
- }
- case 10:
- {
- opc = 10;
- break;
- }
- }
- }while(opc != 10);
- }
- int main()
- {
- setlocale(LC_ALL,"portuguese");
- menu();
- printf("\n\n\n\n\n\nFIM.........\n\n\n\n\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement