Advertisement
IcaroPeretti

dist

Mar 29th, 2022
906
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const ativos = [0, 6, 13, 4]
  2.  
  3. const arquivos = ['anotacao.txt', 'mus1.mp3', 'relatorio.pdf', 'index.js'];
  4.  
  5. const inicio = {
  6.     responsabilidade: null,
  7.     prox: null,
  8.     anterior: null,
  9.     id: 0,
  10.     ativo: ativos.includes(0),
  11.     arquivos: []
  12. }
  13. const fim = {
  14.     responsabilidade: null,
  15.     prox: null,
  16.     anterior: null,
  17.     id: 16,
  18.     ativo: ativos.includes(16),
  19.     arquivos: []
  20. }
  21.  
  22. inicio.anterior = fim;
  23. fim.prox = inicio;
  24.  
  25.  
  26. const quantidade = 16
  27. function gerarListaCircular() {
  28.     let pos = 0;
  29.  
  30.     let atual = inicio;
  31.     for(;;) {
  32.         if (pos > 16) break;
  33.         if (pos === 0) {
  34.             atual.prox = {
  35.                 responsabilidade: null,
  36.                 prox: null,
  37.                 anterior: inicio,
  38.                 id: pos+1,
  39.                 ativo: ativos.includes(pos+1),
  40.                 arquivos: []
  41.             }
  42.         }
  43.  
  44.  
  45.         if (pos !== 16 && pos !== 0) {
  46.             if (pos === 15) {
  47.                 atual.prox = fim;
  48.                 fim.anterior = atual
  49.             } else {
  50.  
  51.                 atual.prox = {
  52.                     responsabilidade: null,
  53.                     prox: null,
  54.                     anterior: atual,
  55.                     id: pos+1,
  56.                     ativo: ativos.includes(pos+1),
  57.                     arquivos: []
  58.                 }
  59.             }
  60.         }
  61.  
  62.         atual = atual.prox;
  63.  
  64.         pos++;
  65.     }
  66. }
  67.  
  68. function printarLista () {
  69.     let pos = 0;
  70.  
  71.     let atual = inicio;
  72.     for(;;) {
  73.         if (pos > 16) break;
  74.         // if (pos === 16) {
  75.         //     console.log(atual)
  76.         // }
  77.         console.log('\nAnterior: ', atual.anterior.id)
  78.         console.log('Node: ', atual.id)
  79.         console.log('Prox: ', atual.prox.id)
  80.         console.log('Ativo: ', atual.ativo)
  81.         console.log('Responsabilidade: ', atual.responsabilidade)
  82.  
  83.         pos++;
  84.         atual = atual.prox;
  85.     }
  86. }
  87.  
  88.  
  89. function setResponsabilidade () {
  90.     let pos = 0;
  91.  
  92.     let atual = inicio;
  93.     for(;;) {
  94.         if (pos > 16) break;
  95.  
  96.         if (atual.ativo) {
  97.             let auxAtivo = atual;
  98.  
  99.  
  100.             do  {
  101.                 auxAtivo = auxAtivo.anterior;
  102.                 if (auxAtivo.ativo) {
  103.                     atual.responsabilidade = auxAtivo.id;
  104.                 }
  105.             } while (!auxAtivo.ativo)
  106.  
  107.         }
  108.  
  109.         pos++;
  110.         atual = atual.prox;
  111.     }
  112.  
  113. }
  114.  
  115. function hashFunction (string) {
  116.     return (string.charCodeAt(0) + string.charCodeAt(1) + string.charCodeAt(2)) % 16;
  117. }
  118.  
  119. function distribuirArquivos() {
  120.     for (const arquivo of arquivos) {
  121.         const lugarParaColcarArq = hashFunction(arquivo);
  122.         console.log('lugarParaColcarArq', lugarParaColcarArq);
  123.  
  124.     }
  125. }
  126.  
  127. gerarListaCircular();
  128. // setResponsabilidade();
  129. printarLista();
  130. // console.log(hashFunction('Rafael'))
  131.  
  132. // let atual = inicio;
  133. // for(;;) {
  134. //     console.log(atual)
  135. //     atual = atual.prox
  136. // }
  137.  
  138. // console.log(inicio)
Advertisement
RAW Paste Data Copied
Advertisement