Ir ao conteúdo
  • Cadastre-se

MataMosquito

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

Tudo que MataMosquito postou

  1. A linguagem utilizada é 'C'. Mas foi pedido especificamente o código de Árvore Digital (digital tree ou Trie), como esse site aqui explica: https://docplayer.com.br/24388086-Aula-15-arvores-digitais-trie.html.Não posso usar arvore binaria, avl e etc. A linguagem utilizada é 'C'. Essa imagem aqui mostra um pouco sobre a minha maior dúvida, nas outras árvores, eram sempre apenas 2 ponteiros, um pra esquerda e outro pra direita, mas nesse tipo aqui podem ter desde apenas um ou 3 ou quantos forem necessários, e eu não sei como fazer um programa que coloque os ponteiros conforme necessário. Eu até já tinha encontrado um exemplo (lhttps://www.geeksforgeeks.org/trie-insert-and-search/), mas está muito diferente da forma como eu aprendi, e não consigo usa-lo de base. A estrutura do algoritmo tem que ser a "TRIE". Meu professor não explicou bem então, eu queria mesmo era um programa de arvore digital pronto pra min entender e adaptar para o que a questão pede.
  2. Olá gente, queria pedir ajuda, eu preciso criar um algoritmo conforme pedido na questão 1 abaixo, e eu não consegui entender como criar um nodo de arvore que possa ter quantos ponteiros forem precisos ou se tem outra forma de fazer, não sei como criar esse algoritmo, se alguém tiver um arquivo de exemplo de arvore digital pra me enviar, ajudaria muito a entender como fazer, eu agradeço quem puder. 1. Crie um algoritmo que utilize arvores digitais. A chave que vai ser usada é o nome de uma cidade. O conteúdo que deve ser listado é um texto com os principais pontos turísticos da cidade. Deve-se poder excluir as cidades caso o usuário queira.
  3. Obrigado consegui fazer aqui com meus amigo, obrigado pelas dicas
  4. Então no caso eu devo simular que cada nó da arvore fosse um arquivo e guardar no nó as informação de data né? eu sei que é pedir muito mas tem como você fazer só esse pra min? é 7 no total e eu já fiz 5 só falta essa e a 5 que eu estou fazendo agora. eu tenho um codigo de AVL que o prof mandou #include <stdio.h> #include <stdlib.h> #include<stdbool.h> #include<locale.h> #include<string.h> typedef struct Nodo* Arvore; struct Nodo{ int info; int alt; struct Nodo *esq; struct Nodo *dir; }; Arvore* CriarArvore(){ Arvore* raiz = (Arvore*) malloc(sizeof(Arvore)); if(raiz != NULL){ *raiz = NULL; }return raiz; } void LiberaNodo(struct Nodo* nodo){ if(nodo != NULL){ LiberaNodo(nodo->esq); LiberaNodo(nodo->dir); free(nodo); nodo = NULL; } } void LiberaArvore(Arvore *raiz){ if(raiz != NULL){ LiberaNodo(*raiz); free(raiz); } } int ArvoreEstaVazia(Arvore *raiz){ int retorno = 0; if(raiz == NULL){ retorno = 1; }else if(*raiz ==NULL){ retorno = 1; } return retorno; } int ArvoreAltura(Arvore *raiz){ int retorno = 0; if(raiz != NULL && *raiz != NULL){ int alt_esq = ArvoreAltura(&((*raiz)->esq)); int alt_dir = ArvoreAltura(&((*raiz)->dir)); if(alt_esq>alt_dir){ retorno = alt_esq + 1; }else{ retorno = alt_dir + 1; } } } int TotalNodoArvore(Arvore *raiz){ int retorno = 0; if(raiz != NULL && *raiz != NULL){ int alt_esq = ArvoreAltura(&((*raiz)->esq)); int alt_dir = ArvoreAltura(&((*raiz)->dir)); retorno = alt_esq + alt_dir + 1; } } void ListarArvore(Arvore *raiz){ int retorno = 0; if(raiz != NULL && *raiz != NULL){ printf("%i \n", (*raiz)->info); ListarArvore(&((*raiz)->esq)); ListarArvore(&((*raiz)->dir)); } } int AlturaNodo(struct Nodo* nodo){ int altura = -1; if(nodo != NULL){ altura = nodo->alt; } return altura; } int FatorBalanceamento(struct Nodo *nodo){ return labs(AlturaNodo(nodo->esq) - AlturaNodo(nodo->dir)); } int Maior(int x, int y){ int retorno = x; if(y > x){ retorno = y; } return retorno; } void RotacaoLL(Arvore *raiz){ struct Nodo *nodo; nodo = (*raiz)->esq; (*raiz)->esq = nodo->dir; nodo->dir = (*raiz); (*raiz)->alt = Maior(AlturaNodo((*raiz)->esq), AlturaNodo((*raiz)->dir)) + 1; nodo->alt = Maior(AlturaNodo(nodo->esq), (*raiz)->alt) + 1; (*raiz) = nodo; } void RotacaoRR(Arvore *raiz){ struct Nodo *nodo; nodo = (*raiz)->dir; (*raiz)->dir = nodo->esq; nodo->esq = (*raiz); (*raiz)->alt = Maior(AlturaNodo((*raiz)->esq), AlturaNodo((*raiz)->dir)) + 1; nodo->alt = Maior(AlturaNodo(nodo->esq), (*raiz)->alt) + 1; (*raiz) = nodo; } void RotacaoRL(Arvore *raiz){ RotacaoLL(&(*raiz)->dir); RotacaoRR(raiz); } void RotacaoLR(Arvore *raiz){ RotacaoLL(&(*raiz)->esq); RotacaoRR(raiz); } void InsereArvoreAVL(Arvore *raiz, struct Nodo *novo){ if(*raiz == NULL){ novo->alt = 0; *raiz = novo; }else{ struct Nodo *atual = *raiz; if(novo->info < atual->info){ InsereArvoreAVL(&(atual->esq), novo); if(FatorBalanceamento(atual) >= 2){ if(novo->info < (*raiz)->esq->info){ RotacaoLL(raiz); }else{ RotacaoLR(raiz); } } }else if(novo->info > atual->info){ InsereArvoreAVL(&(atual->dir), novo); if(FatorBalanceamento(atual) >= 2){ if((*raiz)->dir->info < novo->info){ RotacaoRR(raiz); }else{ RotacaoRL(raiz); } } } atual->alt = Maior(AlturaNodo(atual->esq), AlturaNodo(atual->dir))+ 1; } } void InsereArvore(Arvore *raiz){ int retorno = 0; if(raiz != NULL){ int valor = 0; printf("informe o Número\n"); scanf ("%i", &valor); struct Nodo* novo = (struct Nodo*)malloc(sizeof(struct Nodo)); novo->info = valor; novo->esq = NULL; novo->dir = NULL; InsereArvoreAVL(raiz, novo); } } struct Nodo *ProcuraMenor(struct Nodo *atual){ struct Nodo* nodo1 = atual; struct Nodo* nodo2 = atual->esq; while(nodo2 != NULL){ nodo1 = nodo2; nodo1 = nodo2->esq; } return nodo1; } int RemoveNodoArvoreAVL(Arvore *raiz, int valor){ int res = 0; if(valor < (*raiz)->info){ if(res = RemoveNodoArvoreAVL(&(*raiz)->esq, valor) == 1){ if(FatorBalanceamento(*raiz) >= 2){ if(AlturaNodo((*raiz)->dir->esq) <= AlturaNodo((*raiz)->dir->dir)){ RotacaoRR(raiz); }else{ RotacaoRL(raiz); } } } }else if(valor > (*raiz)->info){ if(res = RemoveNodoArvoreAVL(&(*raiz)->dir, valor) == 1){ if(FatorBalanceamento(*raiz) >= 2){ if(AlturaNodo((*raiz)->esq->dir) <= AlturaNodo((*raiz)->esq->esq)){ RotacaoLL(raiz); }else{ RotacaoLR(raiz); } } } }else if(valor == (*raiz)->info){ if(((*raiz)->esq == NULL || (*raiz)->dir == NULL )){ struct Nodo *oldNodo = (*raiz); if((*raiz)->esq != NULL){ *raiz = (*raiz)->esq; }else{ *raiz = (*raiz)->dir; } free(oldNodo); }else{ struct Nodo *temp = ProcuraMenor((*raiz)->dir); (*raiz)->info = temp->info; RemoveNodoArvoreAVL(&(*raiz)->dir, (*raiz)->info); if(FatorBalanceamento(*raiz) >= 2){ if(AlturaNodo((*raiz)->esq->dir) <= AlturaNodo((*raiz)->esq->esq)){ RotacaoLL(raiz); }else{ RotacaoLR(raiz); } } } res = 1; } return res; } void RemoveArvore(Arvore *raiz){ int retorno = 0; if(raiz != NULL){ int valor = 0; printf("informe o Número a Deletar\n"); scanf("%i", &valor); RemoveNodoArvoreAVL(raiz, valor); } } void ConsultaArvore(Arvore *raiz){ if(raiz != NULL){ int valor = 0; printf("informe um Número\n"); scanf("%i", &valor); if(raiz != NULL){ struct Nodo* atual = *raiz; int alturaValor = 1; bool registroEncontrado = false; while(atual != NULL){ if(valor == atual->info){ printf("Registro encontrado na altura %i\n", alturaValor); registroEncontrado = true; break; }else if(valor >= atual->info){ alturaValor = alturaValor +1; atual = atual->dir; }else { alturaValor = alturaValor +1; atual = atual->esq; } } if(registroEncontrado == false){ printf("Registro não encontrado\n"); } } } } int main (void){ setlocale(LC_ALL, "Portuguese"); bool sair = false; int opcao = 0; Arvore *raiz = CriarArvore(); int altura = 0; int nodo = 0; do{ system("cls"); printf("******************************************************\n"); printf("***********************MENU***************************\n"); printf("******************************************************\n"); printf("1 - Inserir\n"); printf("2 - Deletar\n"); printf("3 - Listar\n"); printf("4 - Consultar\n"); printf("5 - Altura Arvore\n"); printf("6 - Nodos Arvore\n"); printf("7 - sair\n"); scanf("%i", &opcao); fflush(stdin); switch(opcao){ case 1: InsereArvore(raiz); break; case 2: RemoveArvore(raiz); break; case 3: ListarArvore(raiz); break; case 4: ConsultaArvore(raiz); break; case 5: altura = ArvoreAltura(raiz); printf("Altura total da Arvore %i\n", altura); system("PAUSE"); break; case 6: nodo = TotalNodoArvore(raiz); printf("Nodos total da Arvore %i\n", nodo); system("PAUSE"); break; default: sair = true; break; } } while(sair == false); LiberaArvore(raiz); printf("\n"); system("pause"); return (0); }
  5. Alguém por favor pode me ajudar? Meu professor passou essa questão sobre arquivo .txt e eu não aprendi bem como utiliza ele, eu tenho ate 23:59 de hoje (dia 04/07) pra entregar, será que alguém poderia, pelo menos fazer uma parte para eu ver se entendo? Está difícil aula online, tem professor que não explica muito bem... 4) Num sistema de arquivos.txt (Diretório informado pelo usuário), um catálogo de todos os arquivos é organizado como uma árvore de busca binária AVL. Cada nó denota um arquivo e especifica seu nome e a data de seu último acesso, codificada como um inteiro. Obs: A Data de Acesso devem estar informados dento do arquivo. A data deve estar formata em DD/MM/YYYY. a. Escreva um programa que percorra a árvore e apague todos os arquivos cujos últimos acessos tenham sido anteriores a uma certa data informada pelo usuário. As chaves do catálogo são os nomes dos arquivos. b. O programa também deverá permitir consultar os arquivos presentes na lista
  6. então foi mal ai irmão, sei como resolve não, o meu resolveu só fazendo isso, boa sorte na luta ai moço.
  7. Tentou seguir os passos que mandei no 2° post que fiz aqui?
  8. SeEkEr357: Editar; Depois de pesquisar mais por aqueles que estão com esse erro, o ransomware estava bloqueando o iniciador no Windows 10. Para corrigir no Windows 10, vá para; configurações, depois em Atualização e segurança, Segurança do Windows, Proteção contra vírus e ameaças e role para baixo até Proteção contra ransomware, escolha gerenciar proteção contra ransomware, permitir um app por meio do acesso a pastas controladas, adicionar um app permitido, e use a opção "apps bloqueados recentemente, com isso escolha todos que tem a ver com o lancher da social club. Fonte:https://support.rockstargames.com/community/200020943/360038559474 (adicionei uns passos extras em relação ao link) Olá, consegui achar isso, pra min resolveu. Se tiver alguma duvida estou aqui pra responder.
  9. Estou com o mesmo problema mano, e não faço nem ideia de como resolver, ja mandei um ticket para o suport rockstar, estou a 2 dias esperando resposta e nada, aconselho você a contatar o suport também caso ja não tenho feito, se me responderem posto aqui o que eles disserem, e peço que caso consiga resolver me dig a omo fez também.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!