Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiengo

editor de listas

Recommended Posts

Bom galera, necessito de uma ajuda urgente, tenho que criar uma lista pra essa segunda a noite e não estou conseguindo.

 

EDITOR DE LISTAS

1 – EXIBIR LISTA

2 – INSERIR

3 – REMOVER

4 – EXIBIR ELEMENTO

5 – EXIBIR POSIÇÃO

6 – ESVAZIAR

ESC – SAIR

 

Usando esses comandos.

 

1) Criar uma lista vazia

void criar (tlista *L) {

L->n = 0;

}

2) Verificar se uma lista está vazia

int vazia (tlista L) {

return (L.n == 0);

}

3) Verificar se uma lista está cheia

int cheia (tlista L) {

return (L.n == MAX);

}

4) Obter o tamanho de uma lista

int tamanho (tlista L) {

return (L.n);

}

5) Obter o i-ésimo elemento de uma lista

int elemento (tlista L, int pos, telem *dado) {

/* O parâmetro dado irá receber o elemento encontrado */

/* Retorna 0 se a posição for inválida. Caso contrário, retorna 1 */

if ( (pos > L.n) || (pos <= 0) ) return (0);

*dado = L.v[pos-1];

return (1);

}

7

6) Pesquisar um dado elemento, retornando a sua posição

int posicao (tlista L, telem dado) {

/* Retorna a posição do elemento ou 0 caso não seja encontrado */

int i;

for (i=1; i<=L.n; i++)

if (L.v[i-1] == dado)

return (i);

return (0);

}

7) Inserção de um elemento em uma determinada posição

Requer o deslocamento à direita dos elementos v(i+1)...v(n)

int inserir (tlista *L, int pos, telem dado) {

/* Retorna 0 se a posição for inválida ou se a lista estiver cheia */

/* Caso contrário, retorna 1 */

int i;

if ( (L->n == MAX)) || (pos > L->n + 1) ) return (0);

for (i=L->n; i>=pos; i--)

L->v = L->v[i-1];

L->v[pos-1] = dado;

(L->n)++;

return (1);

}

8) Remoção do elemento de uma determinada posição

Requer o deslocamento à esquerda dos elementos v(p+1)...v(n)

int remover (tlista *L, int pos, telem *dado) {

/* O parâmetro dado irá receber o elemento encontrado */

/* Retorna 0 se a posição for inválida. Caso contrário, retorna 1 */

int i;

if ( (pos > L->n) || (pos <= 0) ) return (0);

*dado = L->v[pos-1];

for (i=pos; i<=(L->n)-1; i++)

L->v[i-1] = L->v;

(L->n)--;

return (1);

}

 

Se alguém puder me ajudar eu agradeço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.