Código em Linguagem C para uma lista duplamente encadeada

808 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 !=

Relacionados

  • Estruturas de dados em pascal
    3668 palavras | 15 páginas
  • Trabalho unopar fifo e filo
    1908 palavras | 8 páginas
  • Biblioteca de Arquivos com Arvore Binária em C
    3973 palavras | 16 páginas
  • Programa agenda C++
    2524 palavras | 11 páginas
  • Teoria Da Argumenta O Jur Dica Est Cio Aulas E Casos 1 A 16
    16695 palavras | 67 páginas