Ir para conteúdo
Fórum Script Brasil

jhoul

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre jhoul

Perfil

  • Gender
    Male

jhoul's Achievements

0

Reputação

  1. tem algo erra no remover quando eu mando remover o ultimo elemento ele da um bug. #include<stdio.h> #include<stdlib.h> typedef struct reg { struct reg *ant; int dado; struct reg *prox; }def_lista; def_lista *lista=NULL; int insere_inicio(int valor) { def_lista *aux; aux = (def_lista *) malloc(sizeof(def_lista)); if (aux==NULL) return 0; aux->dado = valor; aux->prox = NULL; if (lista==NULL) lista = aux; else { aux->prox = lista; lista = aux; } return 1; } int insere_ordenado(int valor) { def_lista *aux,*aux1,*aux2; aux = (def_lista *)malloc(sizeof(def_lista)); aux -> dado = valor; aux -> prox = NULL; aux -> ant = NULL; if(lista == NULL) lista = aux; else { aux1 = lista; if(valor < lista -> dado) { aux -> prox = lista; lista = aux; aux1->ant = lista; } else { while(valor > aux1 -> dado && aux1 -> prox != NULL) aux1 = aux1->prox; if(valor < aux1->dado) { aux2 = aux1->ant; aux1 -> ant = aux; aux -> prox = aux1; aux -> ant = aux2; aux2 -> prox = aux; } else if(aux1->prox == NULL) { aux1->prox = aux; aux->ant = aux1; } } } } int remover(int valor) { def_lista *aux,*aux1,*aux2; aux2 = lista; aux = lista; aux1 = lista->prox; if(valor == lista->dado) { lista = lista -> prox; aux1->ant = NULL; free(aux2); printf("Removeu o %d\n\n",valor); system("pause"); return 1; } while((aux1->prox != NULL) && (aux1->dado != valor)){ aux = aux1; aux1 = aux1->prox; } if(aux1 != NULL) { aux = aux1->prox; aux2->prox = aux; aux->ant = aux2; printf("Removeu o %d\n\n",valor); system("pause"); return 1; } if(aux1->prox == NULL) { aux->prox = NULL; free(aux1); printf("Removeu o %d\n\n",valor); system("pause"); return 1; } } busca(int valor) { def_lista *aux,*aux1; aux1 = lista; if(lista == NULL) puts("lista vazia"); else { do { if(aux1 -> dado == valor){ printf("Achou o %d \n\n",aux1 -> dado); return 1;} else aux1 = aux1 -> prox; }while(aux1 != NULL); if (aux != NULL) printf("não achou o %d\n\n",valor); } } int imprimir() { def_lista *aux, *aux1; aux=lista; while(aux != NULL) { printf(" é %d\n",aux->dado); aux1 = aux; aux = aux->prox; } while(aux1 != NULL) { printf("é %d\n",aux1->dado); aux1 = aux1->ant; } } main() { int num; char op; do { system ("cls"); puts ("\n\n ********** LISTAS DINAMICAS **********\n\n"); puts(" \xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC"); puts(" \xDB DIGITE 1 PARA INSERIR NO INICIO \xDB"); puts(" \xDB DIGITE 2 PARA INSERIR NO FIM \xDB"); puts(" \xDB DIGITE 3 PARA INSERIR ORDENADAMENTE\xDB"); puts(" \xDB DIGITE 4 PARA IMPRIMIR LISTA \xDB"); puts(" \xDB DIGITE 5 PARA REMOVER ELEMENTO \xDB"); puts(" \xDB DIGITE 6 PARA BUSCAR ELEMENTO \xDB"); puts(" \xDB DIGITE 7 PARA SAIR DO PROGRAMA \xDB"); puts(" \xDB\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDC\xDB"); puts(" ENTRE COM A OPCAO DESEJADA: "); puts(" \x1F"); printf(" ");scanf("%d",&op); system ("cls"); switch(op) { // case 1: // puts("\nInsira um numero\n"); // scanf("%d",&num); // insere_inicio(num); // system("cls"); // break; // // case 2: // puts("\ninsira a direita\n"); // scanf("%d", &num); // insere_direita(num); // system("cls"); // break; case 3: puts("\nentre com um valor no inicio\n"); scanf("%d",&num); insere_ordenado(num); system ("cls"); break; case 4: imprimir(); system ("pause"); break; case 5: if(lista == NULL){ puts("\nlista vazia\n\n"); system("pause"); break;} puts("\nentre com o numero removido\n"); scanf("%d",&num); remover(num); break; case 6: if (lista == 0){ puts("\nlista vazia\n\n"); system("pause"); break;} puts("\nentre com um numero para busca\n"); scanf("%d",&num); busca(num); system("pause"); break; // case 7: // puts("\n...FIM DO PROGRAMA...\n"); // break; default: system ("cls"); puts ("\nNumero Invalido!\n"); system ("pause"); } // fim do switch } while (op != 7);// fim laço do getch(); } // fim da classe main
  2. Olá eu comecei meu curso a pouco tempo e o prefessor passo um trabalho para criar um banco de dados, a parte da modelagem conceitual(o grafico) já está pronta, mas ele quer uma parte escrita detalhando o modelo. Se alguém tiver alguma ideia para me ajudar por favor mostem um exemplo!!! Obrigado. E-mail - jonathaneld@hotmail.com
  3. 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
×
×
  • Criar Novo...