Olá preciso que alguém me ajude a corrigir meu programa principalmente na parte de inserção à direita
o professora possou como fazer mas eu não consegui pegar direito se alguém poder me ajudar eu agradeço!!!
/*Utilizando listas simplesmente encadeadas escreva um programa capaz de:
a) Inserir de forma ordenada;
B) Inserir fim;
c) Inserir no inicio;
d) Imprimir;
e) Remover;
f) Buscar um elemento na lista.*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.>
#include <string.h>
#include <malloc.h>
typedef struct list
{
int dado;
struct list *prox;
}def_lista;
def_lista *lista = NULL;
int insere_ordenado()
{
int num = 0;
system ("cls");
printf("entre com um numero:\n");
scanf("%d",&num);
return;
}
[b]int insere_direita(*primeiro)
{
struct list *p=0,*aux,*aux2;
int num = 0;
*primeiro=primeiro;
puts("entre com um valor");
scanf("%d",&num);
malloc(p);
printf("O NUMERO é: %d \n",p);
if(p == NULL)
{
printf("Erro de alocacao");
}
else
{
p->dado=num;
p->prox=NULL;
}
if(primeiro == NULL)
primeiro=p;
else
aux=primeiro;
while(aux-> prox != NULL)
aux=aux->prox;
p->prox = aux;
return 1;
}[/b]
int insere_inicio()
{
int num;
def_lista *aux;
aux = (def_lista *) MALLOC(sizeof(def_lista));
if (aux==NULL)
return 0;
aux->dado = num;
aux->prox = NULL;
if (lista==NULL)
{
lista = aux;
printf("O VALOR %d",lista);
}
else
{
aux->prox = lista;
lista = aux;
printf("O VALOR %d",lista);
}
return 1;
}
/* Exibe o conteudo de lista */
imprimir()
{
def_lista *aux;
aux = lista;
while (aux != NULL)
{
printf(aux->dado);
aux = aux->prox;
}
}
// Classe principal
main()
{
int op,num;
do {
system ("cls");
puts ("\n\n********** LISTAS DINAMICAS **********\n\n");
puts("digite 1 para inserir de forma ordenada");
puts("digite 2 para inserir a direita");
puts("digite 3 para inserir no inicio");
puts("digite 4 para imprimir");
puts("digite 5 para remover");
puts("digite 6 para buscar elemento");
puts("digite 7 para sair do programa\n");
puts("\nENTRE COM A OPCAO DESEJADA:");
scanf("%d", &op);
cria_lista();
switch(op)
{
case 1:
insere_ordenado();
break;
[b] case 2:
insere_direita();
system("pause");
break;[/b]
case 3:
insere_inicio();
printf("entre com um valor no inicio");
scanf("%d \n",&num);
system ("cls");
break;
case 4:
imprimir ();
if (!imprimir())
system ("cls");
printf("\n Lista Vazia \n\n ");
system ("pause");
break;
case 5:
break;
case 6:
break;
case 7:
printf("\nFim do Programa...\n");
break;
default:
system ("cls");
puts ("\nNumero Invalido!\n");
system ("pause");
} // fim do switch
} while (op != 7);// fim do laço do
getch();
} // fim da classe main
se alguém poder me ajudar esse é meu e-mail. jonathaneld@hotmail.com
Pergunta
jhoul
Olá preciso que alguém me ajude a corrigir meu programa principalmente na parte de inserção à direita
o professora possou como fazer mas eu não consegui pegar direito se alguém poder me ajudar eu agradeço!!!
/*Utilizando listas simplesmente encadeadas escreva um programa capaz de:
a) Inserir de forma ordenada;
B) Inserir fim;
c) Inserir no inicio;
d) Imprimir;
e) Remover;
f) Buscar um elemento na lista.*/
se alguém poder me ajudar esse é meu e-mail. jonathaneld@hotmail.com
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.