Lista Simples em C
Publicado por Ivan Rocha 04/05/2007
[ Hits: 16.902 ]
Homepage: http://homes.dcc.ufba.br/~ivan062/bahia
Lista encadeada simples em C, com funções de inserir, remover, consultar, e imprimir valores da lista.
# include<stdio.h> # include<stdlib.h> # include<string.h> # include<ncurses.h> # include<curses.h> # include<ctype.h> //#define MALLOC(x) ((x *) malloc (sizeof(x))) typedef struct ElemListaint{ int chave; struct ElemListaint *ant, *prox; }Listaint; void inicializa(Listaint **l){ *l = NULL; }; int consulta(Listaint *l, int x){ Listaint *p; int achou = 0; p = l; while((p != NULL) && (!achou)){ if( p -> chave == x) achou = 1; else p = p -> prox; } return (achou); }; int insere(Listaint **l, int x){ Listaint *p; int inserido; if(!consulta(*l, x)){ p = ((Listaint *) malloc (sizeof(Listaint))); p -> chave = x; p -> prox = *l; *l = p; } inserido = 1; return (inserido); }; int remover(Listaint **l, int x){ Listaint *p, *q; int achou = 0; p = *l; q = (*l) -> prox; if((*l) -> chave == x){ (*l) = (*l) -> prox; free(p); //free(q); //printf("\nElemento Removido com Sucesso! "); achou = 1; }else{ while(q){ if(q -> chave == x){ p -> prox = q -> prox; //p = NULL; free(q); //q = NULL; achou = 1; }else p = p -> prox; q = q -> prox; } } return (achou); } void imprime(Listaint *l){ Listaint *p; p = l; printf("\nLista de Inteiros: "); while(p){ printf("%d ", p -> chave); p = p -> prox; } getchar(); } int main(){ char op[1]; Listaint *l; int a; inicializa(&l); for(;;){//do{ printf("\n\n"); system("clear"); printf("Programa Lista Duplamente Encadeada!\n\n"); printf("a. Insere na Lista;\n"); printf("b. Remove da Lista;\n"); printf("c. Consulta na Lista;\n"); printf("d. Imprime Lista;\n"); printf("s. SAIR.\n\n"); printf("OPCAO: "); //printf("{FONTE}3310;25H["); //printf("{FONTE}33[8;8H"); gets(op); switch(toupper(op[0])){ case 'A':{ fflush(stdin); //system("clear"); printf("\nDigite o Elemento a Inserir: "); scanf("%d", &a); a = insere(&l, a); //****************************************88 if(a) printf("\nElemento Inserido com Sucesso!\n"); else printf("\nElemento nao Inserido!\n"); usleep(1000000); }break; case 'B':{ fflush(stdin); //system("clear"); if (l == NULL){ printf("\nLista Vazia!!!"); getchar(); }else{ printf("\nDigite o Elemento a Remover: "); scanf("%d", &a); a = remover(&l, a); if (a) printf("\nElemento Removido com Sucesso!\n"); else printf("\nNao existe este Elemento!\n"); } usleep(1000000); }break; case 'C':{ fflush(stdin); if (l == NULL){ printf("\nLista Vazia!!!"); getchar(); }else{ printf("\nDigite o Elemento a Consultar: "); scanf("%d", &a); a = consulta(l, a); //******************************************* //printf("{FONTE}33[x;yH"); if(a) printf("\nValor encontrado na lista!!!\n"); else printf("\nValor nao encontrado na lista!!!\n"); usleep(1000000); } }break; case 'D':{ fflush(stdin); if(l == NULL){ printf("\nLista Vazia!!!"); getchar(); }else imprime(l); }break; case 'S':{ fflush(stdin); printf("\nTem certeza? (S/N) "); gets(op); if(toupper(op[0]) == 'S'){ system("clear"); exit(0); } }break; default:{ fflush(stdin); if(toupper(op[0]) != 'S') printf("Opcao incorreta, digite novamente!"); //usleep(1000000); }break; } }//while(toupper(op[0]) != 'S'); return (0); }
Converte segundos para horas, minutos e segundos
pegavalor.c - Interação com usuário
Nenhum coment�rio foi encontrado.
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Sempre que vou baixar algum pacote acontece o erro dpkg (7)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (12)