Home
Professores
Ana Monteiro
Luis Arturo
Osman
Luciano
Celso
André
Downloads
IDE's
Eclipse
NetBeans
Dev C++
CodeBlocks
Pascal ZIM
Apostilas
Games
Software
Office
Cursos
Online
Gratuito
Java
Pago
Softblue
Presencial
Intellectuale
IAI
Simulados
Itil V3
Cobit Foundation
CBTS
PMP/CAPM
Referências
Luis Arturo
Celso Concheto
Outros
Liesenberg
Macoratti
1 Bit
Idéia Programada
TI Especialistas
Átilla Arruda(Certificações)
Livros
C / C++
C++ Como programar, Deitel
Curso de C++
Programando Microcontroladores PIC Linguagem C
Java
Aula André
Sub Child Category 2
Sub Child Category 3
Pascal
Sub Child Category 1
Sub Child Category 2
Sub Child Category 3
PHP
Sub Child Category 1
Sub Child Category 2
Sub Child Category 3
Visual Basic
HTML / Javascript
Delphi
Programação orientada a objeto em Delphi
Sub Child Category 2
Sub Child Category 3
Assembly
Android
INFORMAÇÕES
Cronograma
Horários
PAAD
Grade Curricular
E-mails
Professores
Alunos
Veduca
Humor
quinta-feira, 30 de maio de 2013
C: Lista Simplesmente Encadeada
01:14
C
No comments
/*30/05/13 01:03 Autor: Gustavo Silva Peotta Instituição de Ensino: FACCAMP Plataforma: Windows Função do programa: O programa consiste em mostrar o funcionamento de uma lista simplestente encadeada, com função de inserir no fim e no inicio, remoção no fim e no inicio, busca de valores e impressão em ordem de entrada e reversa. */ #include
#include
#include
#include
#define tecla getch() #define cls system("cls") int v[100]; int n=0; int i; int remocao; int insercao; int imprimir; int valor_buscado=0; //Criando a estrutura struct list { int iValor; struct list *proximo; };//não esquecer o ";" typedef struct list Lista;//Diz que agora em vez de escrever "struct list" podemos escrever so Lista int removerNoInicio(Lista **paramLista){ if(*paramLista == NULL)//verirfica se a lista esta vazia return 1; else{//senão tiver ele cria uma lista auxiliar novamente Lista *auxiliar; auxiliar = *paramLista;//coloca a lista atual dentro da auxiliar *paramLista = (*paramLista)->proximo;//pega a lista e converte para *paramLista free(paramLista);// a função free libera a memoria } } int removerNoFim(Lista **paramLista){ if(*paramLista == NULL)//verirfica se a lista esta vazia return 1; else{//senão tiver ele cria uma lista auxiliar novamente Lista *listaAux; //senao cria uma lista auxiliar listaAux = *paramLista; //coloca a lista atual na lista auxiliar while(listaAux->proximo->proximo != NULL){ //e vai percorrendo a lista ate encontrar o final ou seja NULL listaAux = listaAux->proximo; //enquato nao acha o final ela fica colocando "as estruturas listas" na lista temporaria }//obviamente uma ora ela vai chegar no final da lista ou seja nesta linha //*listaAux = (*listaAux)->proximo;//pega a lista e converte para *paramLista free(listaAux->proximo);// a função free libera a memoria listaAux->proximo = NULL; } } //Funçao que insere no final da lista. void inserirFim(Lista **paramLista, int v){ Lista *nList;//criando ponteiro nova lista. nList=(Lista*)malloc(sizeof(Lista));//alocando o espaço em memória e usando cast. nList->iValor = v; //atribuindo valor para n nova lista. nList->proximo = NULL;// apontando para fim da lista if(*paramLista == NULL){//verifica se é o final da fila *paramLista = nList;//se for insere a nova lista no final }else{ Lista *listaAux; //senao cria uma lista auxiliar listaAux = *paramLista; //coloca a lista atual na lista auxiliar while(listaAux->proximo != NULL){ //e vai percorrendo a lista ate encontrar o final ou seja NULL listaAux = listaAux->proximo; //enquato nao acha o final ela fica colocando "as estruturas listas" na lista temporaria }//obviamente uma ora ela vai chegar no final da lista ou seja nesta linha listaAux->proximo = nList;//como ele ja esta no final da fila ele so adiciona a nova lista } } void inserirInicio(Lista **paramLista, int v){ Lista *nList;//criando ponteiro nova lista. nList=(Lista*)malloc(sizeof(Lista));//alocando o espaço em memória e usando cast. nList->iValor = v; //atribuindo valor para n nova lista. nList->proximo = NULL; //SETA COMO NULL Lista *listaAux; listaAux = *paramLista; nList->proximo = listaAux; //O próximo do valor inserido vai apontar para o inicio da lista *paramLista = &*nList; //Aqui existe um ponteiro de um ponteiro, por isso o fato do &* paramLista; //Aqui é retornado a lista pronta ! } //Esta função imprime toda a lista void imprimirLista(Lista * paramList) { cls;//limpa a tela printf("\nImprimindo a Lista:\n\n"); while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo { printf("%d", paramList->iValor);//imprimindo o valor paramList = paramList->proximo; //apontando a lista a proxxima lista printf("\n"); } } void imprimirReversa(Lista * paramList) { cls;//limpa a tela printf("\nImprimindo a Lista Reversa:\n\n"); while(¶mList->iValor != NULL)//enquanto nao é o final da lista leia { v[n]=paramList-> iValor; n++; paramList = paramList->proximo; //apontando a lista a proxima lista } for (i=n;i>0;i--) { printf("%d", v[n-1]); n--; printf("\n"); } } int Busca(Lista *paramList, int Valor_buscado) { while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo { if(paramList->iValor == valor_buscado){ return 1; }//imprimindo o valor else paramList = paramList->proximo; //apontando a lista a proxima lista } return 0; } int cont=0; //inicio do programa main() { int op=1;//controla a opção escolida pelo usuario int tmp=0;//variavel temporaria para o valor que usuario digitar Lista *minhaLista;// cria um ponteiro do tipo lista minhaLista = NULL;//Seta ele com o valor NULL while(op!=0){ system("color 0b"); cls; printf(" Instituicao de Ensino: FACCAMP\n"); printf(" Autor: Gustavo Silva Peotta\n"); printf(" RA: 11797\n"); printf("\n\n\n --------------------------"); printf("\n | MENU |"); printf("\n --------------------------"); printf("\n | [1] - INSERIR |"); printf("\n | [2] - REMOVER |"); printf("\n | [3] - IMPRIMIR |"); printf("\n | [4] - BUSCA |"); printf("\n | |"); printf("\n | [0] - SAIR |"); printf("\n --------------------------\n\n"); printf(" Opcao: "); scanf("%d",&op); // inserir switch(op){ case 1: system("color 0b"); cls; printf("\n\n\n --------------------------"); printf("\n | INSERCAO |"); printf("\n --------------------------"); printf("\n | [1] - INICIO |"); printf("\n | [2] - FIM |"); printf("\n | [3] - VOLTAR |"); printf("\n --------------------------\n\n"); printf(" Opcao: "); scanf("%d",&insercao); if(insercao==1){ cls; printf("\nQual valor deseja inserir\n"); scanf("%d",&tmp); inserirInicio(&minhaLista,tmp); }else if(insercao==2){ cls; printf("\nQual valor deseja inserir\n"); scanf("%d",&tmp); inserirFim(&minhaLista,tmp); }else if(insercao==3){ break; }else{ cls; printf("Opcao Invalida !!!\n\n\n"); system("pause"); } break; case 2: system("color 0b"); cls; printf("\n\n\n --------------------------"); printf("\n | REMOCAO |"); printf("\n --------------------------"); printf("\n | [1] - INICIO |"); printf("\n | [2] - FIM |"); printf("\n | [3] - VOLTAR |"); printf("\n --------------------------\n\n"); printf(" Opcao: "); scanf("%d",&remocao); if(remocao==1){ cls; if (removerNoInicio(&minhaLista)==1){ printf("\nA lista ja esta vazia"); tecla; } else{ cls; printf("\nValor do INICIO removido\n"); tecla; } } else if (remocao==2){ cls; if (removerNoFim(&minhaLista)==1){ printf("\nA lista ja esta vazia"); tecla; } else{ cls; printf("\nValor do FIM removido\n"); tecla; } } else if(remocao==3){ break; } else{ cls; printf("Opcao Invalida !!!\n\n\n"); system("pause"); } break; case 3: system("color 0b"); cls; printf("\n\n\n --------------------------"); printf("\n | IMPRIMIR |"); printf("\n --------------------------"); printf("\n | [1] - NORMAL |"); printf("\n | [2] - REVERSO |"); printf("\n | [3] - VOLTAR |"); printf("\n --------------------------\n\n"); printf(" Opcao: "); scanf("%d",&imprimir); if (imprimir==1){ cls; if(minhaLista == NULL){//verirfica se a lista esta vazia printf("A lista esta vazia, impossivel imprimir !"); tecla; }else{ imprimirLista(minhaLista); getch(); } } else if(imprimir==2){ if(minhaLista == NULL){//verirfica se a lista esta vazia printf("A lista esta vazia, impossivel imprimir !"); tecla; }else{ imprimirReversa(minhaLista); getch(); } } else if(imprimir==3){ break; } else{ cls; printf("Opcao Invalida !!!\n\n\n"); system("pause"); } break; case 4: cls; if(minhaLista == NULL){//verirfica se a lista esta vazia printf("A lista esta vazia, impossivel imprimir !"); tecla; }else{ printf("\n\n\n --------------------------------"); printf("\n | INSIRA O VALOR A SER BUSCADO |"); printf("\n --------------------------------\n"); printf(" Valor: "); scanf("%d",&valor_buscado); cls; printf("\n\n\n --------------------------"); printf("\n | BUSCA |"); printf("\n --------------------------"); printf("\n | VALOR BUSCADO |"); printf("\n | %d |",valor_buscado); printf("\n | |"); printf("\n | STATUS |"); if (Busca(minhaLista,valor_buscado) == 1) { printf("\n | Existente |"); printf("\n --------------------------"); } else { printf("\n | Inexistente |"); printf("\n --------------------------"); } getch(); } break; case 0: op=0; break; default: fflush(stdin); } } }
Enviar por e-mail
Postar no blog!
Compartilhar no Twitter
Compartilhar no Facebook
Compartilhar com o Pinterest
Postagem mais recente
Postagem mais antiga
Página inicial
0 comentários:
Postar um comentário
Assinar:
Postar comentários (Atom)
Perfis Sociais
Popular
Tags
Arquivos Blog
Redes de computadores e a internet, Kurose - 5ª Edição
Abaixo estarei disponibilizando o livro em que o professor Osman está usando como referência para ministrar suas aulas no 2º ano. É bom s...
C: Jogo Batalha Naval
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <time.h> #include &qu...
Humor #1
Curso de Java
Curso de JAVA para iniciantes e profissionais, do básico ao avançado, disponibilizado pela Universidade XTI www.universidadexti.com.br para ...
Apostila AutoCad Civil 3D 2012 – Autodesk
Objetivo deste documento é apresentar ao usuário algumas das funcionalidades básicas do software AutoCAD Civil 3D. O software AutoCAD C...
Programar no Android
Bom pessoal, estarei listando abaixo algumas aplicações(apk) para se programar no próprio celular. São compiladores bem funcionais e testei ...
Adobe Photoshop CS6 Final Extended Portátil (x86/x64)
O software Adobe Photoshop CS6 oferece a magia da criação de imagens mais moderna, novas opções de criação e um desempenho incrivelment...
Autodesk AutoCAD 2014 (x86/x64)
Desenhe e modele o mundo ao seu redor com os recursos versáteis e poderosos do software AutoCAD®, uma das principais ferramentas de pro...
C: Lista Simplesmente Encadeada
/*30/05/13 01:03 Autor: Gustavo Silva Peotta Instituição de Ensino: FACCAMP Plataforma: Windows Função do programa: O programa con...
'The Last of Us' e 'GTA 5' chegarão ao Brasil em português
Além da produção do Playstation 3 no Brasil, a Sony guardou mais algumas surpresas para os fãs brasileiros. A companhia anunciou que o a...
Quem sou eu
GTX IPTV
Ver meu perfil completo
Tecnologia do
Blogger
.
Labels
Android
(1)
Apostila
(2)
C
(16)
Dicas
(4)
Estrutura de dados
(1)
Humor
(6)
Java
(1)
Livros
(1)
Luciano
(1)
Luis Arturo
(1)
Notícias
(13)
Sistemas Digitais
(1)
Software
(15)
Blog Archive
▼
2013
(60)
►
junho
(2)
▼
maio
(44)
C: Lista Simplesmente Encadeada
Apostila AutoCad Civil 3D 2012 – Autodesk
Adobe Photoshop Dicas & Truques Vol.2 – Iphoto
Google Earth Pro 7 + Ativação
Nero Multimedia Platinum 12
Adobe Photoshop CS6 Final Extended Portátil (x86/x64)
AVG Internet Security 2013 (x86/x64)
Nero Burning ROM 12 PT-BR
Autodesk AutoCAD 2014 (x86/x64)
ESET Smart Security 6 + Ativação (x86 e x64)
PC Cleaner Pro 2013
Avast Premier Antivirus 8
Avira Antivirus Premium 2013 + Ativação
Pinnacle Studio Ultimate 16 + Ativação
SpeedyPC Pro 3.1
CCleaner Professional e Business Edition 4
Video Converter Ultimate 6.5
Nitro PDF Pro 8.5 (x32/x64)
Samsung lança modelo de carteira virtual
21 mi de pessoas comprarão o Google Glass em 2018,...
Adesivo criado no Japão evita superaquecimento do ...
5G será até 1.000 vezes melhor que 4G, aposta pesq...
'The Last of Us' e 'GTA 5' chegarão ao Brasil em p...
EA anuncia demissão de 900 funcionários
Cinemark passa a enviar ingressos para o celular d...
Os 25 apps gratuitos mais baixados para iPhone
NASA investe em impressora 3D de pizza
SAP contratará autistas para programar
Menina desenvolve algoritmo que diagnostica leucemia
Pelo 2º ano, Apple tem a marca mais valiosa do mundo
C: Jogo da Velha
C: Jogo de RPG
C: Jogo Quiz de Informática
C: Jogo Batalha Naval
C: Caixa Eletrônico
C: Lista Simplesmente Ligada
C: Lista Duplamente Ligada
C: Criador de Arquivo
C: Jogo de Adivinhação
C: Sistema de login
C: Programa que recebe 10 valores, calcule e escre...
C: Somar duas matrizes
C: Cifra de César
C: MDC
►
abril
(9)
►
março
(5)
Blogger news
RSS Feed
Insira o seu e-mail:
Marcadores
Android
(1)
Apostila
(2)
C
(16)
Dicas
(4)
Estrutura de dados
(1)
Humor
(6)
Java
(1)
Livros
(1)
Luciano
(1)
Luis Arturo
(1)
Notícias
(13)
Sistemas Digitais
(1)
Software
(15)
Sites Interessantes
Arquivos blog
Arquivos blog
junho (2)
maio (44)
abril (9)
março (5)
0 comentários:
Postar um comentário