Código em Linguagem C para uma lista duplamente encadeada

814 palavras 4 páginas
#include
#include
#include

typedef struct _produto{ int codigo; char nome[10]; float preco;
}tp_produto;

typedef struct _nodo tp_nodo; struct _nodo{ tp_nodo *ant; tp_produto info; tp_nodo *prox;
};

//Funções tp_nodo* inicializa(){ return(NULL);
}

tp_nodo* destruirLista(tp_nodo *ptl)
{
tp_nodo *aux = NULL; for(aux = ptl; aux != NULL; aux = aux->prox) free(aux); return(NULL);
}

tp_produto* leituraProduto()
{
tp_produto *nvProduto = NULL; nvProduto = (tp_produto*) malloc(sizeof(tp_produto)); printf("\n\n\tInforme os dados do produto:"); printf("\nNome:\t"); scanf("%s", nvProduto->nome); printf("\nCódigo:\t"); scanf("%d", &(nvProduto->codigo)); printf("\nPreço:\t"); scanf("%f", &(nvProduto->preco)); return(nvProduto);
}

//Funções de inserção tp_nodo* insereInicio(tp_nodo *ptl, tp_produto *p)
{
tp_nodo *nvNodo = NULL; nvNodo = (tp_nodo*) malloc(sizeof(tp_nodo)); nvNodo -> info = *p; nvNodo -> ant = NULL; nvNodo -> prox = ptl;

if (ptl != NULL) ptl -> ant = nvNodo; ptl = nvNodo; return (ptl);
}

tp_nodo* insereFinal(tp_nodo *ptl, tp_produto *p)
{
tp_nodo *nvNodo = NULL, *aux = NULL; nvNodo = (tp_nodo*) malloc(sizeof(tp_nodo)); nvNodo -> info = *p; nvNodo -> prox = NULL; if (ptl == NULL) { nvNodo -> ant = NULL; ptl = nvNodo; }else { for(aux = ptl; aux->prox != NULL; aux = aux->prox);

aux -> prox = nvNodo; nvNodo -> ant = aux; } return (ptl);
}

void insereMeio(tp_produto *p, tp_nodo *ele)//ele é o elemento apos o qual vai ser inserido...
{
tp_nodo *nvNodo = NULL, *aux = NULL; nvNodo = (tp_nodo*) malloc(sizeof(tp_nodo)); nvNodo -> info = *p; aux = ele -> prox;//guarda o proximo elemento ele -> prox = nvNodo;//faz elemento ja existente apontar para o novo(prox) e o novo para o ja

Relacionados

  • Linguagem c
    3355 palavras | 14 páginas
  • Atividade de produção textual
    3021 palavras | 13 páginas
  • Portifolio individual 3 semestre
    2261 palavras | 10 páginas
  • Analise e desenvolvimento
    1809 palavras | 8 páginas
  • trab 2
    1938 palavras | 8 páginas
  • Trabalhos
    3085 palavras | 13 páginas
  • 632101 AED 6 Listas Pilhas Filas
    2643 palavras | 11 páginas
  • Informatica
    2243 palavras | 9 páginas
  • Computação
    3289 palavras | 14 páginas
  • Port 3 Sem
    2889 palavras | 12 páginas