Ir ao conteúdo
  • Cadastre-se

C Estou confuso com essa lista, não estou conseguindo resolver, podem me ajudar?


Dan Azevedo

Posts recomendados

Trocar a ordem de dois elementos (sendo passado por parâmetro as posições dos elementos a serem trocados).

Alterar o conteúdo de um item da lista (sendo passado por parâmetro a posição e o novo valor do elemento).

 

#include <stdio.h>
#include <stdlib.h>
#define MaxTam 1000

typedef struct
{
int codigo;
char nome[60];
char endereco[30];
char telefone[15];
}TipoItem;

typedef struct
{
TipoItem Itens[MaxTam];
int inicio, fim;
}TipoLista;


void criaListaVazia (TipoLista *Lista)
{
Lista->inicio = 0;
Lista->fim = 0;
}

int verificaVazia (TipoLista Lista)
{
if (Lista.inicio==Lista.fim)
return 1;
return 0;
}

void insere (TipoItem x, TipoLista *Lista)
{
if (Lista->fim > MaxTam)
printf("Lista Cheia!");
else
{
Lista->Itens[Lista->fim] = x;
Lista->fim++;
}
}
void imprime(TipoLista lista)
{
int aux;
for (aux=lista.inicio; aux<lista.fim;aux++)
printf("%12d\n",lista.Itens[aux].codigo);
}

void exclui (int pos, TipoLista *Lista, TipoItem *item)
{
int aux;
if (verificaVazia(*Lista) || pos>=Lista->fim)
{
printf("Erro: Posicao Inexistente!");
return;
}
*item = Lista->Item[pos];
Lista->fim--;
for (aux=pos;aux<Lista->fim;aux++)
Lista->Itens[aux]=Lista->Itens[aux+1];
}

 

adicionado 15 minutos depois

No fim eu acho que só precisaria dessa:

void trocaItem (TipoLista *Lista, int x, int y)
{
    TipoItem aux;
    
    aux = Lista->Itens[x];
    Lista.Itens[x]=Lista.Itens[y];
    Lista.Itens[y]=aux;
}

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...