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

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

Como se tornar um desenvolvedor full-stack

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!