Lista Linear
Pessoal, boa tarde, estou com algumas dúvidas em alguns exercícios em Estrutura de Dados aqui e gostaria de uma orientação de vocês.
Os exercícios são esses:
1# Verificar se L está ordenada (Crescente ou Decrescente)
2# Fazer uma cópia de Lista L1 em outra L2.
3# Fazer uma cópia de Lista L1 em outra L2, eliminando os repetidos.
A lógica para a primeira eu já tenho na cabeça, mas não consigo passar para o papel, estou pensando em fazer um loop na lista inteira e ir verificando se o item atual é maior que o proximo, ela é crescente, se o primeiro item for menor que o próximo e assim sucessivamente, ela é decrescente se não for nada disso, ela não é ordenada.
A unica coisa que consegui até agora foi isso:
#define MAX 100/estimativa do tamanho máximo da lista/
#define TRUE 1/define tipo boleano –não existe na linguagem C/
#define FALSE 0
#define boolean int
typedef int tipo_chave; /tipo da chave –deve admitir comparações/
typedef struct{ /tipo registro/
char nome[30];
// ...
}tipo_info;
typedef struct{ /tipo elemento/
tipo_chave chave;
tipo_info info;
}tipo_elem;
typedef struct{
int nelem; /número atual de elementos/
tipo_elem A[MAX];
}Lista;
boolean Vazia(Lista *L){
/Retorna true (1) se lista vazia, false (0) caso contrário/
return (L -> nelem == 0);
}
boolean Cheia(Lista *L){
/Retorna true (1) se lista cheia, false (0) caso contrário/
return(L -> nelem == MAX);
}
void Definir(Lista *L){
/Cria uma lista vazia. Este procedimento deve ser chamado para cada nova lista antes de qualquer outra operação./
L -> nelem = 0;
}
void Apagar(Lista *L){
/Apaga logicamente uma lista/
L -> nelem = 0;
}
Alguem ???
Discussão (1)
Carregando comentários...