Work

Disponível somente no TrabalhosFeitos
  • Páginas : 1 (250 palavras )
  • Download(s) : 0
  • Publicado : 4 de outubro de 2012
Ler documento completo
Amostra do texto
#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)
{
Produtop;
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);



}
tracking img