From 0d52a3fb8927cb46709001600afb7ffa2474471f Mon Sep 17 00:00:00 2001 From: Samo Penic <samo.penic@gmail.com> Date: Wed, 23 Oct 2019 13:54:16 +0000 Subject: [PATCH] Added linked list --- docker.html | 79 +++++++++++++++++++++++++++++++++++++-- 1 files changed, 75 insertions(+), 4 deletions(-) diff --git a/docker.html b/docker.html index 5741611..c338e7c 100644 --- a/docker.html +++ b/docker.html @@ -14,6 +14,23 @@ <link rel="shortcut icon" href="favicon.png" /> <link rel="apple-touch-icon" href="apple-touch-icon.png" /> + <style> +div.linkedlist{ +width:120px;height:35px;border:1px solid #000;font-size:16px;display:inline-block;padding-left:10px;margin-left:30px; +} +div.linkedlist::before{ + content: '\1F82A'; + font-size: 16pt; + left: -1.5em; + margin-top:-5px; + position: relative; +} + +div.addrvertical{ +width:90px;height:35px;border:1px solid #000;background:grey;color:white;font-size:16px;display:inline-block +} + + </style> </head> <body class="impress-not-supported"> @@ -29,6 +46,7 @@ var phones; var memory; var insert_idx=0; +var insert_idx_without_collision=0; function hash(stringval){ hashval= 0; strlen=stringval.length; @@ -46,12 +64,33 @@ +function insertMissingIntoLL(data_index){ + if(data_index==-1) data_index=insert_idx; + hashval=hash(names[data_index]); + console.log("f"+hashval); + elll=document.getElementById("ll"+hashval); + elll.innerHTML=elll.innerHTML+"<div class='linkedlist'>"+names[data_index]+"</div>"; + + memory[hashval]=data_index; + insert_idx++; + if(insert_idx==8){ + alert("Completed!"); + } + else { + currentInner(document.getElementById("s1current"), insert_idx); + currentInner(document.getElementById("currll"), insert_idx); + } + +} + + function insertIntoMemory(data_index){ if(data_index==-1) data_index=insert_idx; hashval=hash(names[data_index]); console.log("f"+hashval); if(memory[hashval]!=-1){ alert("Collision!!!"); + insert_index_without_collision=insert_idx; } else{ el1=document.getElementById("f"+hashval); @@ -59,14 +98,18 @@ el1.innerHTML=names[data_index]; el2.innerHTML=phones[data_index]; - + + elll=document.getElementById("ll"+hashval); + elll.innerHTML=elll.innerHTML+"<div class='linkedlist'>"+names[data_index]+"</div>"; + memory[hashval]=data_index; insert_idx++; - if(insert_idx==12){ + if(insert_idx==8){ alert("Completed!"); } else { currentInner(document.getElementById("s1current"), insert_idx); + currentInner(document.getElementById("currll"), insert_idx); } } } @@ -207,9 +250,9 @@ <div class="step slide vsebina" data-x="2000" data-y="-1500" data-z="0"> <h1 class="naslov">Mapping key to index</h1> - <p>... is performed by so called hash functions. It can be as simple as <b>sum(ascii_code[i]) % array_size</b></p><br /><br /> + <p>... is performed by so called hash functions. It can be as simple as <b>sum(ascii_code[i]) % array_size</b></p><br /> - <p>Let's try it out for our phone directory (array_size=13):</p> + <p>Let's try it out for our phone directory (array_size=13):</p><br /> <div id="s1current"></div><br /> <button onclick="insertIntoMemory(-1);">Insert</button> <br /><br /> @@ -248,7 +291,35 @@ <div class="step slide vsebina" data-x="2000" data-y="-2500" data-z="0"> <h1 class="naslov">Closed addressing</h1> + <table style="width:100%"> +<col width="70%"> + <col width="30%"> + <tr> + <td> + <div id='ll0'><div class="addrvertical">data[0]</div></div> + <div id='ll1'><div class="addrvertical">data[1]</div></div> + <div id='ll2'><div class="addrvertical">data[2]</div></div> + <div id='ll3'><div class="addrvertical">data[3]</div></div> + <div id='ll4'><div class="addrvertical">data[4]</div></div> + <div id='ll5'><div class="addrvertical">data[5]</div></div> + <div id='ll6'><div class="addrvertical">data[6]</div></div> + <div id='ll7'><div class="addrvertical">data[7]</div></div> + <div id='ll8'><div class="addrvertical">data[8]</div></div> + <div id='ll9'><div class="addrvertical">data[9]</div></div> + <div id='ll10'><div class="addrvertical">data[10]</div></div> + <div id='ll11'><div class="addrvertical">data[11]</div></div> + <div id='ll12'><div class="addrvertical">data[12]</div></div> + <div id='ll13'><div class="addrvertical">data[13]</div></div> + </td> + <td> + <div id="currll"></div> + <button onclick="insertMissingIntoLL(-1);">Insert</button> +</td> + + </tr> +</table> + </div> -- Gitblit v1.9.3