C ::: Estruturas de Dados ::: Lista Ligada Simples |
Estrutura de Dados em C - Como inserir nós no final de uma lista singularmente ligada em CQuantidade de visualizações: 8522 vezes |
Esta dica mostra como inserir nós no final de uma lista singularmente ligada. A estrutura usada para representar cada nó é a seguinte:
struct No{
int valor;
struct No *proximo;
};
Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no final quanto a exibição dos nós são feitas usando funções. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código:
#include <stdio.h>
#include <stdlib.h>
// estrutura Nó
struct No{
int valor;
struct No *proximo;
};
// fim da estrutura Nó
// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
if(n != NULL){
do{
printf("%d\n", n->valor);
n = n->proximo;
}while(n != NULL);
}
else
printf("A lista esta vazia\n\n");
}
// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
// reserva memória para o novo nó
struct No *novo = (struct No*)malloc(sizeof(struct No));
novo->valor = v;
// verifica se a lista está vazia
if(n == NULL){
// é o primeiro nó...não deve apontar para
// lugar nenhum
novo->proximo = NULL;
return novo; // vamos retornar o novo nó como sendo o início da lista
}
else{ // não está vazia....vamos inserir o nó no final
// o primeiro passo é chegarmos ao final da lista
struct No *temp = n; // vamos obter uma referência ao primeiro nó
// vamos varrer a lista até chegarmos ao último nó
while(temp->proximo != NULL){
temp = temp->proximo;
}
// na saída do laço temp aponta para o último nó da lista
// novo será o último nó da lista...o campo próximo dele deve
// apontar para NULL
novo->proximo = NULL;
// vamos fazer o último nó apontar para o nó recém-criado
temp->proximo = novo;
return n; // vamos retornar o início da lista intacto
}
}
int main(int argc, char *argv[])
{
// declara a lista
struct No *inicio = NULL;
// vamos inserir quatro valores no final
// da lista
inicio = inserir_final(inicio, 45);
inicio = inserir_final(inicio, 3);
inicio = inserir_final(inicio, 98);
inicio = inserir_final(inicio, 47);
// vamos exibir o resultado
exibir(inicio);
system("pause");
return 0;
}
|
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como gerar um número aleatório (randômico) em PHP usando a função rand()Quantidade de visualizações: 31097 vezes |
|
Nesta dica mostrarei como gerar números randômicos dentro de uma determinada faixa usando a função rand() da linguagem PHP. Veja que esta função requer o limite inicial e final (incluso) da faixa a partir da qual o número aleatório será gerado. Veja um código PHP no qual geramos um número aleatório entre 1 e 10: <html> <head> <title>Estudando PHP</title> </head> <body> <?php $num = rand(1, 10); echo "O número gerado foi: " . $num; ?> </body> </html> Ao executar este código nós teremos um resultado parecido com: O número gerado foi: 5 Obs: A partir da versão 4.2.0 do PHP, não é mais necessário usar srand() ou mt_srand() para inicializar a semente (seed) do gerador de números aleatórios. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que calcula o fatorial de um determinado número inteiroQuantidade de visualizações: 2853 vezes |
|
Pergunta/Tarefa: Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. O fatorial de um número n pode ser definido recursivamente da seguinte forma: 0! = 1; n! = n x (n - 1)!; sendo n > 0
public static long fatorial(int n){
// sua implementação aqui
}
Informe um número inteiro: 5 O fatorial do número informado é: 120 Veja a resolução comentada deste exercício usando Java console:
package estudos;
import java.util.Scanner;
public class Estudos {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos solicitar o número inteiro
System.out.print("Informe um número inteiro: ");
// lê o número
int numero = Integer.parseInt(entrada.nextLine());
// calcula o fatorial corresponde ao número informado
System.out.print("O fatorial do número informado é: " + fatorial(numero));
System.out.println("\n");
}
// método recursivo que calcula o fatorial de um inteiro informado
public static long fatorial(int n){
if(n == 0){ // caso base....retornar
return 1;
}
else{
return n * fatorial(n - 1); // efetua mais uma chamada recursiva
}
}
}
|
Delphi ::: Dicas & Truques ::: Matemática e Estatística |
Como arredondar casas decimais para baixo usando a função Floor() do DelphiQuantidade de visualizações: 14257 vezes |
A função Floor(), presente na unit Math, é útil quando queremos arrendondar valores de ponto-flutuante (valores com casas decimais) para baixo, ou seja, para o maior inteiro menor ou igual ao valor fornecido. Veja um exemplo:
procedure TForm2.Button1Click(Sender: TObject);
var
valor: Real;
resultado: Integer;
begin
// uses Math
valor := 8.74;
// vamos arredondar o valor para baixo
// o resultado será 8
resultado := Floor(valor);
// exibe o resultado
ShowMessage('O valor arredondado para baixo é: ' +
IntToStr(resultado));
end;
Note que os valores 8.0001, 8.3, 8.1, 8.99, etc, serão todos arredondados para 8. No entanto, 9.0 é arredondado para 9. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Nossas 20 dicas & truques de programação mais populares |
|
Java - Como adicionar conteúdo a um arquivo texto existente em Java usando BufferedWriter e FileWriter AutoCAD VBA - Como criar uma linha no AutoCAD usando Autocad VBA e a função AddLine() do objeto ModelSpace LISP - Como converter Coordenadas Cartesianas para Coordenadas Polares em LISP - LISP para Engenharia JavaScript - Como adicionar elementos no início de um array JavaScript usando a função unshift() do objeto Array |
Você também poderá gostar das dicas e truques de programação abaixo |
|
C# - Como testar se uma string é null ou vazia em C# usando a função IsNullOrEmpty() da classe String JavaScript - Como calcular a equação reduzida da reta em JavaScript dados dois pontos pertencentes à reta |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





