Você está aqui: C ::: Estruturas de Dados ::: Lista Ligada Simples |
Criando uma lista singularmente ligada, inserindo e exibindo os valores contidos em cada nóQuantidade de visualizações: 11609 vezes |
Em dicas posteriores você aprendeu sobre listas singularmente e duplamente ligadas. Nesta dica você aprenderá a criar uma lista singularmente ligada (com ponteiros apenas para o próximo nó), inserir alguns nós (sempre no final da lista) e usará um laço while para visitar todos os nós e exibir seus valores. A estrutura usada para representar cada nó é a seguinte: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- 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 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: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #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 na 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(struct No *n, int v){ struct No *temp; // verifica se a lista está vazia if(n == NULL){ // reserva memória para o novo nó n = (struct No*)malloc(sizeof(struct No)); n->valor = v; // é o primeiro nó...não deve apontar para // lugar nenhum n->proximo = NULL; } else{ // não está vazia....vamos inserir o nó no final temp = n; // vamos varrer a lista até encontrar o último nó while(temp->proximo != NULL) temp = temp->proximo; // estamos no último nó...vamos criar um novo nó agora temp->proximo = (struct No*)malloc(sizeof(struct No)); // atribui o valor do nó temp->proximo->valor = v; // define o campo proximo do nó como NULL temp->proximo->proximo = NULL; } return n; } int main(int argc, char *argv[]) { // declara a lista struct No *inicio = NULL; // vamos inserir quatro valores na lista inicio = inserir(inicio, 45); inicio = inserir(inicio, 3); inicio = inserir(inicio, 98); inicio = inserir(inicio, 17); // vamos exibir o resultado exibir(inicio); system("pause"); return 0; } |
Link para compartilhar na Internet ou com seus amigos: |
C ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em C dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1754 vezes |
Nesta dica mostrarei como é possível usar a linguagem C para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir: Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras): \[c^2 = a^2 + b^2\] Tudo que temos a fazer a converter esta fórmula para código C. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]){ float a = 20; // medida do cateto oposto float b = 30; // medida do cateto adjascente // agora vamos calcular o comprimento da hipotenusa float c = sqrt(pow(a, 2) + pow(b, 2)); // e mostramos o resultado printf("O comprimento da hipotenusa é: %f", c); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.055511 Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada. |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função concat() que reproduz a funcionalidade da função strcat() da linguagem CQuantidade de visualizações: 11481 vezes |
O C (C99, ANSI C) contém uma função strcat(), no header string.h, que permite concatenar duas strings. Para fins de estudo, segue abaixo o código completo para uma função concat(), que recebe duas strings, anexa a segunda à primeira e retorna um ponteiro para uma string contendo ambas:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // uma função concat char *concat(char *destino, const char *origem) { // um ponteiro para a string de destino char *original = destino; // vai para o final da string de destino while(*original) original++; // anexa a string de origem while(*original++ = *origem++) ; // retorna o resultado return destino; } Veja como usar no trecho de código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> // uma função concat char *concat(char *destino, const char *origem) { // um ponteiro para a string de destino char *original = destino; // vai para o final da string de destino while(*original) original++; // anexa a string de origem while(*original++ = *origem++) ; // retorna o resultado return destino; } int main(int argc, char *argv[]) { char frase1[100] = "Gosto"; char frase2[20] = " muito de C e Java."; char *resultado = concat(frase1, frase2); // exibe o resultado printf("%s", resultado); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Gosto muito de C e Java. |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como usar um ponteiro para acessar e alterar o valor de mais de uma variável do tipo int usando a linguagem CQuantidade de visualizações: 9986 vezes |
Esta dica mostra a você como podemos usar apenas um ponteiro para acessar e manipular os valores de três variáveis do tipo int. Veja o uso do símbolo "&" para acessar o endereço de uma variável e "*" (operador de indireção) para acessar o valor da variável apontada pelo ponteiro. Observe o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { // declara e inicializa três variáveis int a = 23; int b = 40; int c = 3; // exibe seus valores printf("a = %d, b = %d, c = %d\n\n", a, b, c); // declara um ponteiro para uma variável do tipo int int *p; // aponta para a variável "a" e altera seu valor p = &a; *p = 12; // aponta para a variável "b" e altera seu valor p = &b; *p = 695; // aponta para a variável "c" e altera seu valor p = &c; *p = 90; // exibe os novos valores das variáveis printf("a = %d, b = %d, c = %d\n\n", a, b, c); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado: a = 23, b = 40, c = 3 a = 12, b = 695, c = 90 Pressione qualquer tecla para continuar... |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |