Work

250 palavras 1 página
#include
#include
#include "funcoes.h"

void inicializa ( Produto * L)
{
listaProd * aux; aux = (listaProd *) malloc(sizeof(listaProd)); if (aux==NULL) { printf("Problema de alocação") exit(1); }

aux->ini = -1; aux->fim = -1;

return aux;
}

Produto consulta ( Produto * L, int posicao)
{
Produto p; strcpy(p.nome,""); p.cod=0; p.preco=0; if ( (posicao > L.fim - L.inicio + 1 ) || (posicao < 1)) return p; else return L.inicio+posicao-1]; }

void insere (listaProd * L, int posicao, Produto p)
{
int i; if ( ((L->ini == 0) && (L->fim == MAX-1)) || /*não tem espaço*/ (posicao > L->fim - L->ini + 2 ) || /*posição inválida*/(posicao < 1) || /*posição inválida*/((L->ini == -1) && (posicao != 1 )) ) { //lista vazia, só pode ser o primeiro printf("erro - posicao invalida\n"); exit(1); }

else if (L->ini ==-1) { L->ini= 0; L->fim = 0; } else if (L->fim != MAX-1) { for (i=L->fim; i >= L->ini+ posicao -1; i--) L->vetor[i+1] = L->vetor[i]; L->fim = L->fim + 1;

} else { for (i=L->ini; i ini + posicao-1; i++) L[i-1] = L[i]; L->ini = L->ini- 1;

} L->vetor[L->ini+posicao-1]=P;
}
Produto remove ( Produto * L, int posicao)
{
int i; Produto rem; strcpy(rem->nome,""); rem->cod=0; rem->preco=0; if ( (posicao > L->fim - L->ini + 1 ) || (posicao < 1)) return rem; else { rem = L.inicio+posicao-1; for (i=L.inicio+posicao-1; iini+1);posicao++){ printf("%s ",consulta(L,posicao).nome); printf("%f ",consulta(L,posicao).preco); printf("%d ",consulta(L,posicao).cod);

Relacionados

  • Work
    1654 palavras | 7 páginas
  • work
    7632 palavras | 31 páginas
  • Work
    4462 palavras | 18 páginas
  • Works
    380 palavras | 2 páginas
  • work
    13623 palavras | 55 páginas
  • works
    389 palavras | 2 páginas
  • WORK
    552 palavras | 3 páginas
  • Works
    412 palavras | 2 páginas
  • Work
    505 palavras | 3 páginas
  • WORK
    1350 palavras | 6 páginas