Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
andre.oliveiras

LDE (inserção de valores em ordem crescente)

Recommended Posts

Olá Pessoal...

Sou novo por aqui... esse é meio primeiro post... Preciso da ajuda de vocês para o seguinte:

Preciso que na lista abaixo os valores sejam inseridos em ordem crescente (ex: se na lista já foi digitado os valores 5 e 10, o valor digitado 8 seja armazenado entre eles, o valor 2 antes de 5...). Do jeito q ela está aí embaixo, ela insere no final da lista:

#include <iostream>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct valores

{

int valor;

struct valores *prox;

struct valores *ant;

};

typedef struct valores lista;

lista *inicio= NULL;

lista *atual= NULL;

lista *novo=NULL;

void inicia()

{

inicio=(lista*) malloc (sizeof(lista));

if (!inicio)

{

printf("Não existe espaço na memoria");

exit(1);

}

inicio->ant=NULL;

inicio->prox=NULL;

atual=inicio;

}

void insere()

{

novo=(lista*)malloc(sizeof(lista));

printf("Digite o valor: ");

scanf("%s",&novo->valor);

novo->ant=atual;

novo->prox=NULL;

atual->prox=novo;

atual=novo;

}

void imprimi()

{

atual=inicio;

do{

atual=atual->prox;

printf("\n%s\n",atual);

}

while (atual->prox!=NULL);

getchar();

}

int main(void)

{

char op;

int sair=0;

inicia();

for(;sair==0;)

{

printf("\n1-> Inicia\n2-> Insere\n3-> Imprimi");

printf("\n\nDigite uma opcao: ");

scanf(" %s", &op);

switch (op)

{

case '1': inicia(); break;

case '2': insere();break;

case '3': imprimi();break;

default:

{

printf("\nOpcao Invalida!\n");

getchar();

break;

}

}

}

return 0;

}

Já nessa segunda, gostaria q me ajudassem a imprimir os dados na ordem crescente das idades digitadas. Do jeito que está abaixo, ele imprimi na ordem em que foram digitadas:

#include <iostream>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

struct cadastro

{

int idade;

char *nome;

struct cadastro *prox;

struct cadastro *ant;

};

typedef struct cadastro lista;

char nomepessoa[100];

lista *inicio= NULL;

lista *atual= NULL;

lista *novo=NULL;

void inicia()

{

inicio=(lista*) malloc (sizeof(lista));

if (!inicio)

{

printf("Não existe espaço na memoria");

exit(1);

}

inicio->ant=NULL;

inicio->prox=NULL;

atual=inicio;

}

void insere()

{

novo=(lista*)malloc(sizeof(lista));

printf("Digite o nome: ");

scanf("%s", &nomepessoa);

novo->nome=(char*)malloc(strlen(nomepessoa)+1);

strcpy (novo->nome,nomepessoa);

printf("Digita a idade: ");

scanf ("%d",&novo->idade);

novo->ant=atual;

novo->prox=NULL;

atual->prox=novo;

atual=novo;

}

void imprimi()

{

atual=inicio;

do{

atual=atual->prox;

printf("\n%s",atual->nome);

printf("\n%d\n",atual->idade);

}

while (atual->prox!=NULL);

getchar();

}

int main(void)

{

char op;

int sair=0;

inicia();

for(;sair==0;)

{

printf("\n1-> Inicia\n2-> Insere\n3-> Imprimi");

printf("\n\nDigite uma opcao: ");

scanf(" %s", &op);

switch (op)

{

case '1': inicia(); break;

case '2': insere();break;

case '3': imprimi();break;

default:

{

printf("\nOpcao Invalida!\n");

getchar();

break;

}

}

}

return 0;

}

Como vocês podem ver, são listas duplamente encadeadas em C++, conforme exigido pelo meu professor. Quem puder e souber ... thanks!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×