Ir ao conteúdo
  • Cadastre-se

Gusttavo Torres

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Gusttavo Torres

  1. //preciso disto ate amanha
    #include <iostream>
    #include <iomanip>
    #include <math.h>
    #include <locale.h>
    #include <cstring>
    #include <cstdio>
    #include <conio.h>
    #include <cstdlib>
    
    using namespace std;
    struct elemento
    {
    	int info;
    	struct elemento*anterior;
    	struct elemento*prox;
    
    };
    typedef struct elemento Elemento;
    
    struct elemento *primeiro;
    struct elemento *ultimo;
    
    Elemento * lst_cria(void)
    {
    	return NULL;
    }
    
    void lst_insere(int x)
    {
    	struct Elemento * aux;
    	aux = (struct Elemento*)malloc(sizeof(struct Elemento));
    	aux->dados = x;
    	ultimo->prox = aux;
    	aux->ant = ultimo;
    	aux->prox = NULL;
    	ultimo = ultimo->prox;
    	aux = NULL;
    	free(aux);
    }
    
    void lst_imprime(elemento * lst)
    {
    	Elemento * p;
    	for(p = lst; p != NULL; p = p->prox)
    		printf("info=%d\n", p->info);
    }
    
    int lst_vazia(Elemento * lst)
    {
    	return(lst == NULL);
    }
    
    Elemento * lst_retira(int x)
    {
    
    	int teste = 0;
    	struct Elemento*aux;
    	aux = primeiro;
    
    	while(aux != NULL )
    	{
    		if(aux->dados == x)
    		{
    			if(aux->prox == NULL)
    			{
    				cout << "Removido" << aux->dados << endl;
    			}
    
    			ultimo = ultimo->ant;
    			ultimo->prox = NULL;
    			free(aux);
    			aux = NULL;
    			teste = 1;
    		}
    		else
    		{
    			cout << "removido" << aux->dados << endl;
    			teste = 1;
    			aux->ant->prox = aux->prox;
    			aux->prox->ant = aux->ant;
    			free(aux);
    			aux = NULL;
    		}
    		else
    		{
    			aux = aux->prox;
    			if(teste == 0)
    			{
    				cout << "Nenhum valor encontado!!! :(" << endl;
    			}
    		}
    
    	}
    	Elemento *lst_busca(Elemento * lst, int v)
    	{
    		Elemento*p;
    		for(p = lst; p != NULL; p = p->prox)
    		{
    			if(p->info == v)
    				return p;
    		}
    		return NULL;
    	}
    
    	void lst_libera(Elemento * lst)
    	{
    		Elemento*p = lst;
    		while(p != NULL)
    		{
    			Elemento*t = p->prox;
    			free(p);
    			p = t;
    		}
    	}
    
    	Elemento * lst_insere_ordenado(Elemento * lst, int val)
    	{
    		Elemento * novo;
    		Elemento * a = NULL;
    		Elemento * p = lst;
    
    		while(p != NULL && p->info < val)
    		{
    			a = p;
    			p = p->prox;
    		}
    		novo = (Elemento * )malloc(sizeof(Elemento));
    		novo->info = val;
    
    		if(a == NULL)
    		{
    			novo->prox = lst;
    			lst = novo;
    		}
    
    		else
    		{
    			novo->prox = a ->prox;
    			a->prox = novo;
    		}
    		return lst;
    	}
    	void imprime_lista_ordem_direta(Elemento * lst)
    	{
    		if( lst_vazia(lst))
    		{
    			printf("\n\nA lista esta vazia.\n\n");
    		}
    		while(lst != NULL)
    		{
    			printf(" %c", lst->info);
    			lst = lst->prox;
    		}
    
    	}
    	void imprime_lista_ordem_inversa(Elemento * lst_cria)
    	{
    		if(lst_vazia(lst_cria))
    		{
    			printf("\n\nA lista esta vazia.\n\n");
    		}
    		else
    
    			while(lst_cria->prox != NULL)
    			{
    				lst_cria = lst_cria->prox;
    
    			}
    
    		printf("\nA lista eh:\n\n");
    		while(lst_cria != NULL)
    		{
    			printf(" %c", lst_cria->info);
    			lst_cria = lst_cria->anterior;
    		}
    
    	}
    
    	int main()
    	{
    		setlocale(LC_ALL, "Portuguese");  // habilita a estrutura ortográfica em português
    
    		int opcao, val;
    		Elemento * lst;
    		Elemento *lst2;
    
    		lst = lst_cria();
    
    		cout << "digite a opcao,para sair (-1)" << endl;
    		cin >> opcao;
    
    		while(opcao != -1)
    		{
    			cout << "1-Inserir" << endl;
    			cout << "2-Ordenados" << endl;
    			cout << "3-Buscar" << endl;
    			cout << "4-Imprimir F" << endl;
    			cout << "5-Imprimir I" << endl;
    			cout << "6-Excluir" << endl;
    			cout << "7-Sair" << endl;
    			cin >> opcao;
    
    
    			switch(opcao)
    			{
    			case 1:
    
    
    				cout << "voce digitou a opcao Inserir-Insira" << endl;
    				cin >> val;
    
    				lst = lst_insere(lst, val);
    
    				break;
    
    
    			case 2:
    
    				cout << "voce digitou a opcao Ordenados-Ordene" << endl;
    				cin >> val;
    				lst = lst_insere_ordenado(lst, val);
    
    
    				break;
    
    
    			case 3:
    
    				if((lst_vazia(lst) == 1))
    				{
    					cout << "Vazia" << endl;
    				}
    				else
    				{
    					cin >> val;
    					lst2 = lst_busca(lst, val);
    
    				}
    
    			case 4:
    
    				imprime_lista_ordem_direta(lst);
    
    				break;
    
    			case 5:
    
    				imprime_lista_ordem_inversa(lst);
    
    			case 6:
    				cout << "Digite o numero a ser retirado" << endl;
    				cin >> val;
    
    				if(lst_retira(lst, val))
    				{
    					cout << "nao existe" << endl;
    				}
    				break;
    
    			default:
    				cout << "nao foi possivel tente novamente!!!" << endl;
    				break;
    
    				cout << "digite a opcao,para sair (-1)" << endl;
    				cin >> opcao;
    
    			}
    		}
    
    		return 0;
    	}

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!