#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[i]=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[i]=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[i]=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[i]=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[i]==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(int*Valor, pos);
break;
case 12:
default:
printf("Valor Invalido!\n");
system("PAUSE");
Pergunta
lucas costa da cruz
#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[i]=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[i]=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[i]=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[i]=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[i]==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(int*Valor, pos);
break;
case 12:
default:
printf("Valor Invalido!\n");
system("PAUSE");
}
}
return 0;
}
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.