Implemente uma lista estática, com todas as funções e monte um menu de opções.
#include <stdio.h>
#include <stdlib.h>
#define MAXTAM 1000
int Frente, Tras, Lista[MAXTAM];
void Lista_Construtor(){
Frente=0;
Tras=-1;
}
int Lista_Vazia(){
if(Tras==-1)
return 1;
else
return 0;
}
int Lista_Cheia(){
if(Tras==MAXTAM-1)
return 1;
else
return 0;
}
int Lista_Tamanho(){
return Tras+1;
}
int Lista_Inserir_Inicio(int Valor){
if(Lista_Cheia()){
return 0;
}else{
/*se quero inserir na posição 0,
vou deslocar todos os elementos para frente*/
for(int i=Tras+1;i>Frente;i--){
Lista*=Lista[i-1];*
*
}*
*
Lista[Frente]=Valor;*
*
Tras++;*
*
return 1;*
*
}*
*
}*
*
int Lista_Inserir_Fim(int Valor){*
*
if(Lista_Cheia()){*
*
return 0;*
*
}else{*
*
Tras++;*
*
Lista[Tras]=Valor;*
*
return 1;*
*
}*
*
}*
*
int Lista_Inserir(int Valor, int Posicao){*
*
if(Lista_Cheia()){*
*
return 0;*
*
}else{*
*
/ Para verificar se a posição
*
está no meio da lista /
*
if(Posicao>Frente && Posicao<Tras){*
*
for(int i=Tras+1;i>Posicao;i--){*
*
Lista**=Lista[i-1];*
*
}*
*
Lista[Posicao]=Valor;*
*
Tras++;*
*
return 1;*
*
}else{ *
*
return 0;*
*
}*
*
}*
*
}*
*
int Lista_Remover_Inicio(int Valor){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
Valor =Lista[Frente];
*
for(int i=Frente;i<Tras;i++){*
*
Lista**=Lista[i+1];*
*
}*
*
Tras--;*
*
}*
*
}*
*
int Lista_Remover_Fim(int Valor){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
Valor=Lista[Tras];
*
Tras--;*
*
return 1;*
*
}*
*
}*
*
int Lista_Remover(int Valor, int Posicao){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
if(Posicao>Frente && Posicao<Tras){*
*
Valor=Lista[Posicao];
*
for(int i=Posicao;i<Tras;i++){*
*
Lista**=Lista[i+1];*
*
}*
*
Tras--;*
*
return 1;*
*
}*
*
}*
*
}*
*
int Lista_Get_toda(int Valor){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
Valor=Lista[Frente];
*
return 1;*
*
}*
*
}*
*
int Lista_Get_inicio(int Valor){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
Valor=Lista[Frente];
*
return 1;*
*
}*
*
}*
*
int Lista_Get_Fim(int Valor){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
Valor=Lista[Tras];
*
return 1;*
*
}*
*
}*
*
int Lista_Busca_Valor(int Valor, int Posicao){
*
int i;*
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
for(i=Frente;i<Tras;i++){*
*
if(Lista**==Valor){*
*
break;*
*
}*
*
}*
*
if(i==Tras){*
*
return 0;*
*
}else{*
*
Posicao=i;
*
return 1;*
*
}*
*
}*
*
}*
*
int Lista_Busca_Posicao(int Valor, int Posicao){
*
if(Lista_Vazia()){*
*
return 0;*
*
}else{*
*
if(Posicao>Frente && Posicao<Tras){*
*
Valor=Lista[Posicao];
*
return 1;*
*
}else{*
*
return 0;*
*
}*
*
}*
*
}*
*
int main(){*
*
int i,Valor,op=0,pos;*
*
Lista_Construtor();*
*
while(op!=12){*
*
printf(" Menu de opções \n");*
*
printf("1-Inserir início\n");*
*
printf("2-Inserir fim\n");*
*
printf("3-Inserir meio\n");*
*
printf("4-Excluir início\n");*
*
printf("5-Excluir fim\n");*
*
printf("6-Excluir meio\n");*
*
printf("7-Mostrar toda lista\n");*
*
printf("8-Mostrar primeiro item da lista\n");*
*
printf("9-Mostrar último item da lista\n");*
*
printf("10-Mostrar a posição de um item da lista\n");*
*
printf("11-Mostrar o valor de uma posição\n");*
*
printf("12-Sair\n");*
*
printf("Escolha uma opção: ");*
*
scanf("%d", &op);*
*
switch(op){*
*
case 1:*
*
printf("Digite o valor a ser inserido: ");*
*
scanf("%d", &Valor);*
*
Lista_Inserir_Inicio(Valor);*
*
break;*
*
case 2:*
*
printf("Digite o valor a ser inserido: ");*
*
scanf("%d", &Valor);*
*
Lista_Inserir_fim(Valor);*
*
break;*
*
case 3:*
*
printf("Digite o valor a ser inserido: ");*
*
scanf("%d", &Valor);*
*
printf("Digite a posição que deseja inserir: ");*
*
scanf("%d", &pos);*
*
Lista_ Inserir_meio(int Valor, pos); *
*
break;*
*
case 4:*
*
printf("Digite a remoção do início: ");*
*
scanf("%d", &Valor);
*
Lista_ Excluir_inicio(Valor);
*
break;*
*
case 5:*
*
printf("Digite a remoção do fim: ");*
*
scanf("%d", &Valor);
*
Lista_ Excluir_fim(Valor);
*
break;*
*
case 6:*
*
printf("Digite a remoção do meio: ");*
*
scanf("%d", &Valor);*
*
printf("Digite a posição que deseja remover: ");*
*
scanf("%d", &Posicao);
*
Lista_ Excluir_meio(intValor, pos);
*
break;*
*
case 7:*
*
printf("Digite ao a mostrar toda lista: ");*
*
scanf("%d", &Valor);*
*
Lista_ mostrar_toda_lista(Valor);*
*
break;*
*
case 8:*
*
printf("Digite ao a mostrar primeiro item da lista: ");*
*
scanf("%d", &Valor);
*
Lista_ mostrar_primeiro_item_da_lista(Valor);
*
break;*
*
case 9:*
*
printf("Digite ao a mostrar último item da lista: ");*
*
scanf("%d", &Valor);
*
Lista_ mostrar_ultimo_item_da_lista(Valor);
*
break;*
*
case 10:*
*
printf("Digite ao a mostrar a posição de um item da lista: ");*
*
scanf("%d", &Valor);*
*
printf("Digite a posição que deseja mostrar na lista: ");*
*
scanf("%d", & pos);
*
Lista_ mostrar_posicao_de_um_item_da_lista(intValor, pos);
*
break;*
*
case 11:*
*
printf("Digite ao a mostrar o valor de uma posição: ");*
*
scanf("%d", &Valor
*
printf("Digite a posição que deseja mostrar no valor: ");*
*
scanf("%d", &pos);*
*
Lista_ mostrar_posicao_de_um_valor_da_lista(intValor, pos);
*
break;*
*
case 12:*
*
default:*
*
printf("Valor Invalido!\n");*
*
system("PAUSE");
*
*
**
}
*
*
**
}*
*
return 0;*
*
}
*
Discussão (0)
Carregando comentários...