#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
/*
Assunto .: Utilizando Ponteiros
*/
// definindo estrutura do no
typedef struct Tno
{
int valor;
struct Tno *prox;
} Tno, *no;
// definindo estrutura da lista
typedef struct Tlista
{
int tam;
no prim;
no ultimo;
no marcador;
} Tlista, *lista;
// Funcao para Inserir
lista InsertLista( int elemento, lista l )
{
no novo;
novo = (no) malloc( 1 * sizeof( Tno ) );
novo -> valor = elemento;
novo -> prox = NULL;
if ( l -> tam == 0 )
{
l -> prim = novo;
l -> ultimo = novo;
l -> marcador = novo;
}
if( l-> marcador != l-> ultimo )
{
novo-> prox = l-> marcador-> prox;
l-> marcador-> prox = novo;
}
else
{
l -> marcador -> prox = novo;
novo -> prox = NULL;
l -> ultimo = novo;
}
l -> marcador = novo;
l -> tam + 1;
return l;
}
//Funcao para Iniciar Lista
lista Inicia_Lista( lista l )
{
l = (lista) malloc( 1 * sizeof( Tlista ) );
l -> tam = 0;
l -> prim = NULL;
l -> ultimo = NULL;
l -> marcador = NULL;
return l;
}
//Funcao para Imprimir Lista
lista ImprimeLista( lista l )
{
l-> marcador = l-> prim;
// while( l -> marcador != NULL )
while ( l-> marcador-> prox != NULL )
{
printf("%d\n", l-> marcador-> valor);
l-> marcador = l-> marcador-> prox;
}
return l;
}
//Programa Principal
int main()
{
int escolha=1;
int opcao = 0;
lista l;
while (escolha != 4)
{
printf("\n\n ----------------------- ");
printf("\n 1 - Inserir um elemento na lista ");
printf("\n 2 - Eliminar um elemento ");
printf("\n 3 - Imprimir a lista ");
printf("\n 4 - Sair do programa ");
printf("\n\n Escolha uma opcao: ");
scanf("%d",&escolha);
// estrutura switch
switch (escolha) {
case 1:
{
printf("\n\n Digite um elemento para inserir na lista: ");
scanf("%d",&opcao);
for(int i=0; i<opcao; i++)
l = InsertLista(i, l);
break;
}
case 2:
{
printf("\n\n Eliminar um elemento: ");
scanf("%d",&opcao);
break;
}
case 3:
{
printf("\n\n Imprimir a lista: ");
scanf("%d",&opcao);
ImprimeLista(l);
break;
}
case 4:
{
printf("\n\n O programa sera fechado em 5 segundos....");
system("close");
}
default:
{
printf("\n\n Escolha uma opção do menu!");
}
}
}
//-----------
l = Inicia_Lista(l);
for(int i=0; i<10; i++)
l = InsertLista(i, l);
ImprimeLista(l);
return(0);
}
Estou com um problema na chamada das funcoes quando o usuario informa os mesmo
no menu...
não estou consigando por exemplo...quando o usuario infomar a opcao 1) ele tem que digitar
o elemento para inserir na lista e a opcao 3) tem que imprimir a lista de acordo com esse elemento informado, so que não estou conseguindo fazer isso!!
Pergunta
BrunoSilva
#include <stdio.h> #include <malloc.h> #include <stdlib.h> /* Assunto .: Utilizando Ponteiros */ // definindo estrutura do no typedef struct Tno { int valor; struct Tno *prox; } Tno, *no; // definindo estrutura da lista typedef struct Tlista { int tam; no prim; no ultimo; no marcador; } Tlista, *lista; // Funcao para Inserir lista InsertLista( int elemento, lista l ) { no novo; novo = (no) malloc( 1 * sizeof( Tno ) ); novo -> valor = elemento; novo -> prox = NULL; if ( l -> tam == 0 ) { l -> prim = novo; l -> ultimo = novo; l -> marcador = novo; } if( l-> marcador != l-> ultimo ) { novo-> prox = l-> marcador-> prox; l-> marcador-> prox = novo; } else { l -> marcador -> prox = novo; novo -> prox = NULL; l -> ultimo = novo; } l -> marcador = novo; l -> tam + 1; return l; } //Funcao para Iniciar Lista lista Inicia_Lista( lista l ) { l = (lista) malloc( 1 * sizeof( Tlista ) ); l -> tam = 0; l -> prim = NULL; l -> ultimo = NULL; l -> marcador = NULL; return l; } //Funcao para Imprimir Lista lista ImprimeLista( lista l ) { l-> marcador = l-> prim; // while( l -> marcador != NULL ) while ( l-> marcador-> prox != NULL ) { printf("%d\n", l-> marcador-> valor); l-> marcador = l-> marcador-> prox; } return l; } //Programa Principal int main() { int escolha=1; int opcao = 0; lista l; while (escolha != 4) { printf("\n\n ----------------------- "); printf("\n 1 - Inserir um elemento na lista "); printf("\n 2 - Eliminar um elemento "); printf("\n 3 - Imprimir a lista "); printf("\n 4 - Sair do programa "); printf("\n\n Escolha uma opcao: "); scanf("%d",&escolha); // estrutura switch switch (escolha) { case 1: { printf("\n\n Digite um elemento para inserir na lista: "); scanf("%d",&opcao); for(int i=0; i<opcao; i++) l = InsertLista(i, l); break; } case 2: { printf("\n\n Eliminar um elemento: "); scanf("%d",&opcao); break; } case 3: { printf("\n\n Imprimir a lista: "); scanf("%d",&opcao); ImprimeLista(l); break; } case 4: { printf("\n\n O programa sera fechado em 5 segundos...."); system("close"); } default: { printf("\n\n Escolha uma opção do menu!"); } } } //----------- l = Inicia_Lista(l); for(int i=0; i<10; i++) l = InsertLista(i, l); ImprimeLista(l); return(0); }Estou com um problema na chamada das funcoes quando o usuario informa os mesmo
no menu...
não estou consigando por exemplo...quando o usuario infomar a opcao 1) ele tem que digitar
o elemento para inserir na lista e a opcao 3) tem que imprimir a lista de acordo com esse elemento informado, so que não estou conseguindo fazer isso!!
Link para o comentário
Compartilhar em outros sites
1 resposta 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.