Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct lista{
- int valor;
- struct lista *prox;
- }lista;
- int inserir(lista ** criaL, int valor){
- //Insere um novo item na lista
- lista *novo, *aux, *aux2;
- novo = (lista*)malloc(sizeof(lista));
- if(novo == NULL) exit(0);
- novo->valor = valor;
- novo->prox = NULL;
- if(*criaL == NULL){
- *criaL = novo;
- } else {
- aux = *criaL;
- while (aux != NULL && aux->valor <= valor) {
- aux2 = aux;
- aux = aux->prox;
- }
- // Inserir
- aux2->prox = novo;
- novo->prox = aux;
- }
- return 0;
- }
- //int remove(){
- //Remove um item da lista
- // return 0;
- //}
- int imprimir(lista *L){
- //Imprime todos os elementos da lista
- lista *p;
- p = L;
- while (p != NULL){
- printf("%d\n", p->valor);
- printf("\n");
- p = p->prox;
- }
- return 1;
- }
- //int liberar(){
- //Libera todos os campos da lista para uma nova inserção
- // return 0;
- //}
- int buscar(lista *L, int valor){
- //anda na lista ligada
- lista *p;
- p = L;
- while (p != NULL){
- if (p->valor == valor){
- return 0;
- }
- p = p->prox;
- }
- return 1;
- }
- //lista * criaLista(){
- //Cria a lista e aloca a memória
- // lista *tam, *aux;
- // tam = (lista *) malloc(sizeof(lista)); //Aloca a memória da célula
- // if(novo == NULL) exit(0); //Se não alocar memória significa que não há memoria disponível
- // tam->prox = NULL; //Seta NULL para a primeira célula
- // aux = tam; //aux tem que retornar com a célula vazia
- // return (aux);
- //}
- int main(int argc, char** argv) {
- lista *criaL;
- criaL = NULL;
- // criaL = criaLista(); //cria a lista vazia
- inserir(&criaL, 3);
- //inserir(&criaL, 1);
- inserir(&criaL, 8);
- //inserir(&criaL, 4);
- //inserir(&criaL, 2);
- imprimir(criaL);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement