{"id":229,"date":"2018-09-20T16:19:01","date_gmt":"2018-09-20T15:19:01","guid":{"rendered":"http:\/\/mirotti.eu\/?p=229"},"modified":"2018-09-20T20:18:34","modified_gmt":"2018-09-20T19:18:34","slug":"linkedlist","status":"publish","type":"post","link":"https:\/\/mirotti.eu\/index.php\/2018\/09\/20\/linkedlist\/","title":{"rendered":"LinkedList"},"content":{"rendered":"<pre>Con questo post presento una libreria con implementate alcune funzioni per gestire le liste.<\/pre>\n<p><strong>La lista \u00e8 una struttura dati astratta che permette di memorizzare dei dati<\/strong>, di qualsiasi tipo essi siano, in modo dinamico, ovvero la memoria utilizzata non \u00e8 necessariamente contigua. <strong>Questo \u00e8 un vantaggio quando ho grandi quantit\u00e0 di dati da salvare<\/strong>, perch\u00e9 anche se le celle di memoria che ho a disposizione per salvare i dati non sono in sequenza, con una lista riesco comunque a raggiungere il mio obbiettivo: quando devo memorizzare un numero considerevole di dati, potrei non avere sufficiente memoria heap sequenziale dove immagazzinare le mie informazioni, le liste riescono ad ovviare a questo problema.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-238 aligncenter\" src=\"http:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/array-vs-linked-list-300x155.png\" alt=\"\" width=\"300\" height=\"155\" srcset=\"https:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/array-vs-linked-list-300x155.png 300w, https:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/array-vs-linked-list.png 680w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><strong>Funzionano con una struttura fondamentale che contiene l\u2019elemento da memorizzare e un puntatore all\u2019elemento successivo<\/strong>, in questo modo il blocco di dati viene diviso in singoli container con 1 elemento ciascuno. La memoria dunque non viene allocata per tutto l\u2019array di dati, ma solo per il singolo container, senza aver bisogno di aver a\u00a0 disposizione celle contigue di memoria. I singoli container possono essere salvati in modo ottimizzato, e per accedere al container successivo si segue il puntatore salvato all\u2019interno di quello corrente. Tutto ci\u00f2 si traduce in un <strong>costo computazionale per l\u2019inserimento di un elemento in una lista sempre pari a O(1).<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-230 aligncenter\" src=\"http:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/image3-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/image3-300x225.png 300w, https:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/image3-768x576.png 768w, https:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/image3-1024x768.png 1024w, https:\/\/mirotti.eu\/wp-content\/uploads\/2018\/09\/image3.png 1026w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><strong>E\u2019 una struttura astratta e pu\u00f2 essere applicata a ogni tipo di dato<\/strong>, dai numeri, alle stringhe, fino a strutture dati pi\u00f9 complesse, ovviamente maggiore sar\u00e0 la dimensione del dato da memorizzare, maggiore sar\u00e0 la dimensione del singolo container.<\/p>\n<p><span style=\"margin: 0px; line-height: 107%; font-family: 'Calibri',sans-serif; font-size: 11pt;\"><span style=\"color: #000000;\">I file della libreria si possono scaricare a questo link: <a href=\"https:\/\/github.com\/LeoMirots\/Lists\">https:\/\/github.com\/LeoMirots\/Lists<\/a><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con questo post presento una libreria con implementate alcune funzioni per gestire le liste. La lista \u00e8 una struttura dati astratta che permette di memorizzare dei dati, di qualsiasi tipo essi siano, in modo dinamico, ovvero la memoria utilizzata non \u00e8 necessariamente contigua. Questo \u00e8 un vantaggio quando ho grandi quantit\u00e0 di dati da salvare, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-229","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/posts\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/comments?post=229"}],"version-history":[{"count":8,"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/posts\/229\/revisions"}],"predecessor-version":[{"id":240,"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/posts\/229\/revisions\/240"}],"wp:attachment":[{"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/media?parent=229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/categories?post=229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mirotti.eu\/index.php\/wp-json\/wp\/v2\/tags?post=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}