Ir ao conteúdo

Posts recomendados

Postado

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;
}

 

Postado
  1. Trocar a ordem de dois elementos (OK)
  2. Alterar o conteúdo de um item da lista

 

Falta a segunda função, diferente da primeira que troca internamente, essa troca itens da lista por valor a depender do uso.

 

Pode dizer que a primeira é uma derivação da segunda.

  • Curtir 1

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...