Pesquisar na Comunidade
Mostrando resultados para as tags ''inserir ordenado''.
Encontrado 2 registros
-
Pessoal eu tenho esse código que esta compilando mas quando vou executar alguma das funções ele trava, alguém pode me ajudar? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> typedef struct lista{ int info; struct lista *prox; }Lista; Lista *cria(){ return NULL; } Lista* insere_ordenado (Lista*l, int v){ Lista* novo = cria (); Lista* ant = NULL; Lista* p = l; while (p!=NULL && p->info < v){ ant=p; p=p->prox; } if(ant==NULL){ novo->prox=l; l=novo; } else { novo->prox= ant->prox; ant->prox=novo; } return l; } Lista *conecta(Lista* l1, Lista *l2){ lista*p,*q; if(l1=NULL) return l2; p=l1; do{q=p; p=p->prox; } while(p!=NULL); q->prox=l2; return l1; } Lista *separa(Lista*l,int n){ lista *p, *q; for(p=l;p!=NULL;p=p->prox) if(p->info==n){ q=p->prox=NULL; } return q; } Lista* constroi (int n,int* v){ Lista*p; Lista*q; int i; q=NULL; for(i=n-1;i<=0;i--) {p=(Lista*)malloc(sizeof(Lista)); p->prox=q; p->info=v[i]; q=p; } return q; } Lista* retira_prefixo (Lista* l, int n) { Lista* p; Lista* q; int m=1; p=l; while (p != NULL && m<=n) { m=m+1; q=p->prox; free(p); p=q; } return p; } void opcoes (){ printf ("Escolha a opcao\n"); printf ("1 - Inserir um dado\n"); printf ("2 - Conecta listas \n"); printf ("3 - Separa listas\n "); printf ("4 - Retirar um Elemento\n"); printf ("5 - Insere Ordenado\n"); printf ("6 - Sair\n"); printf ("Digite um valor fora da lista para repetir o menu\n"); } main () { Lista *l,*l1,*l2=NULL, *ret; int op, a, x, v; opcoes (); scanf ("%d",&op); while (op!=6){ switch (op){ case 1: printf ("Digite o valor\n"); scanf ("%d",&a); l=insere_ordenado(l,a); break; case 2:printf ("Digite o valor da lista 1\n"); scanf ("%d",&a); l1=insere_ordenado(l,a); printf ("Digite o valor da lista 2 \n"); scanf ("%d",&a); l2=insere_ordenado(l,a); l=conecta (l1,l2); break; case 3: printf ("Digite o valor aonde voce quer separar a lista\n"); scanf ("%d",&a); l=separa (l,a); break; case 4: printf ("Informe o valor para remover da lista\n"); scanf ("%d",&v); ret=retira_prefixo (l,v);break; case 5:printf ("Informe o valor para remover da lista\n"); scanf ("%d",&v); l=insere_ordenado (l,v);break; default: printf ("\nOpcao invalida\n\n"); opcoes(); } printf ("\nInforme a opcao\n"); scanf ("%d",&op); } system ("pause"); }
-
- lista
- inserir ordenado
-
(e %d mais)
Tags:
-
Pessoal eu tenho esse código que esta compilando mas quando vou executar alguma das funções ele trava, alguém pode me ajudar? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> typedef struct lista{ int info; struct lista *prox; }Lista; Lista *cria(){ return NULL; } Lista* insere_ordenado (Lista*l, int v){ Lista* novo = cria (); Lista* ant = NULL; Lista* p = l; while (p!=NULL && p->info < v){ ant=p; p=p->prox; } if(ant==NULL){ novo->prox=l; l=novo; } else { novo->prox= ant->prox; ant->prox=novo; } return l; } Lista *conecta(Lista* l1, Lista *l2){ lista*p,*q; if(l1=NULL) return l2; p=l1; do{q=p; p=p->prox; } while(p!=NULL); q->prox=l2; return l1; } Lista *separa(Lista*l,int n){ lista *p, *q; for(p=l;p!=NULL;p=p->prox) if(p->info==n){ q=p->prox=NULL; } return q; } Lista* constroi (int n,int* v){ Lista*p; Lista*q; int i; q=NULL; for(i=n-1;i<=0;i--) {p=(Lista*)malloc(sizeof(Lista)); p->prox=q; p->info=v[i]; q=p; } return q; } Lista* retira_prefixo (Lista* l, int n) { Lista* p; Lista* q; int m=1; p=l; while (p != NULL && m<=n) { m=m+1; q=p->prox; free(p); p=q; } return p; } void opcoes (){ printf ("Escolha a opcao\n"); printf ("1 - Inserir um dado\n"); printf ("2 - Conecta listas \n"); printf ("3 - Separa listas\n "); printf ("4 - Retirar um Elemento\n"); printf ("5 - Insere Ordenado\n"); printf ("6 - Sair\n"); printf ("Digite um valor fora da lista para repetir o menu\n"); } main () { Lista *l,*l1,*l2=NULL, *ret; int op, a, x, v; opcoes (); scanf ("%d",&op); while (op!=6){ switch (op){ case 1: printf ("Digite o valor\n"); scanf ("%d",&a); l=insere_ordenado(l,a); break; case 2:printf ("Digite o valor da lista 1\n"); scanf ("%d",&a); l1=insere_ordenado(l,a); printf ("Digite o valor da lista 2 \n"); scanf ("%d",&a); l2=insere_ordenado(l,a); l=conecta (l1,l2); break; case 3: printf ("Digite o valor aonde voce quer separar a lista\n"); scanf ("%d",&a); l=separa (l,a); break; case 4: printf ("Informe o valor para remover da lista\n"); scanf ("%d",&v); ret=retira_prefixo (l,v);break; case 5:printf ("Informe o valor para remover da lista\n"); scanf ("%d",&v); l=insere_ordenado (l,v);break; default: printf ("\nOpcao invalida\n\n"); opcoes(); } printf ("\nInforme a opcao\n"); scanf ("%d",&op); } system ("pause"); }
-
- lista
- inserir ordenado
-
(e %d mais)
Tags: