{"id":619,"date":"2014-12-31T18:20:49","date_gmt":"2014-12-31T17:20:49","guid":{"rendered":"http:\/\/www.valcon.it\/pascal\/?p=619"},"modified":"2015-07-03T13:43:42","modified_gmt":"2015-07-03T11:43:42","slug":"lista-bidirezionale","status":"publish","type":"post","link":"https:\/\/www.valcon.it\/pascal\/lista-bidirezionale\/","title":{"rendered":"Lista bidirezionale"},"content":{"rendered":"<p>Puntatore di testa, puntatore di coda e tre nodi con puntatori nelle due direzioni<\/p>\n<p style=\"padding-left: 30px;\"><img decoding=\"async\" class=\"center\" title=\"WikiImage\" src=\"http:\/\/www.valcon.it\/pascal\/wp-content\/uploads\/listabi.gif\" alt=\"image\" \/><\/p>\n<h3>Dichiarazioni<\/h3>\n<pre class=\"\">Type\r\n \u00a0 tInfo \u00a0 = \"qualsiasi\"; {le informazioni nel nodo}\r\n\u00a0  pNodoDP = ^NodoDP;\r\n \u00a0 NodoDP \u00a0= Record\r\n\u00a0   \u00a0 Info: tInfo;\r\n  \u00a0 \u00a0 Succ, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0{puntatori nelle due direzioni}\r\n  \u00a0 \u00a0 Prec: pNodoDP;\r\n \u00a0 End;\r\n \u00a0 ListaDP = Record\r\n\u00a0   \u00a0 Testa,\r\n  \u00a0 \u00a0 Coda: pNodoDP;\r\n\u00a0  End;<\/pre>\n<h3>Operazioni<\/h3>\n<p>Aggiungere un nodo in Testa<\/p>\n<pre class=\"\">Procedure AggInTesta(var L: ListaDP; X: tInfo);\r\nVar\r\n \u00a0 P: pNodoDP;\r\nBegin\r\n\u00a0  New(P);\r\n \u00a0 P^.Info:=X;\r\n\u00a0  P^.Prec:=Nil;\r\n\u00a0  P^.Succ:=L.Testa;\r\n  \u00a0If(L.Testa <> Nil) Then\r\n  \u00a0 \u00a0 L.Testa^.Prec:=P\r\n \u00a0 Else\r\n  \u00a0 \u00a0 L.Coda:=P;\r\n \u00a0 L.Testa:=P;\r\nEnd;<\/pre>\n<p>Aggiungere un nodo in Coda<\/p>\n<pre class=\"\">Procedure AggInCoda(Var L: ListaDP; X: tInfo);\r\nVar\r\n\u00a0  P: pNodoDP;\r\nBegin\r\n\u00a0  New(P);\r\n \u00a0 P^.Info:=X;\r\n\u00a0  P^.Succ:=Nil;\r\n \u00a0 P^.Prec:=L.Coda;\r\n\u00a0  If(L.Coda <> Nil) Then\r\n  \u00a0 \u00a0 L.Coda^.Succ:=P\r\n \u00a0 Else\r\n  \u00a0 \u00a0 L.Testa:=P;\r\n \u00a0 L.Coda:=P;\r\nEnd;<\/pre>\n<p>Aggiungere un nodo in Ordine<\/p>\n<pre class=\"\">Procedure AggInOrdine(Var L: ListaDP; X: tInfo);\r\nVar\r\n \u00a0 P, Q: pNodoDP;\r\nBegin\r\n \u00a0 New(P);\r\n\u00a0  P^.Info:=X;\r\n\u00a0  If(L.Testa = Nil) Or (X <= L.Testa^.Info) Then\r\n  \u00a0 \u00a0 Begin\r\n   \u00a0 \u00a0 \u00a0 P^.Prec:=Nil; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 {...aggiungi primo nodo...}\r\n   \u00a0 \u00a0 \u00a0 P^.Succ:=L.Testa;\r\n   \u00a0 \u00a0 \u00a0 If(L.Testa = Nil) Then \u00a0 \u00a0 \u00a0{...aggiungi in testa...}\r\n    \u00a0 \u00a0 \u00a0 \u00a0 L.Coda:=P;\r\n   \u00a0 \u00a0 \u00a0 Else\r\n    \u00a0 \u00a0 \u00a0 \u00a0 L.Testa^.Prec:=P;\r\n   \u00a0 \u00a0 \u00a0 L.Testa:=P;\r\n\u00a0 \u00a0   End\r\n  \u00a0Else if(L.Coda^.Info <= X) Then\r\n\u00a0 \u00a0   Begin\r\n   \u00a0 \u00a0 \u00a0 P^.Prec:=L.Coda; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0{...aggiungi in coda...}\r\n   \u00a0 \u00a0 \u00a0 P^.Succ:=Nil;\r\n   \u00a0 \u00a0 \u00a0 L.Coda^.Succ:=P;\r\n   \u00a0 \u00a0 \u00a0 L.Coda:=P;\r\n\u00a0 \u00a0   End\r\n\u00a0  Else\r\n\u00a0 \u00a0   Begin\r\n   \u00a0 \u00a0 \u00a0 Q:=L.Testa^.Succ; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 {...aggiungi prima di Q...}\r\n   \u00a0 \u00a0 \u00a0 While(Q^.Info < X) Do\r\n    \u00a0 \u00a0 \u00a0 \u00a0 Q:=Q^.Succ;\r\n   \u00a0 \u00a0 \u00a0 P^.Prec:=Q^.Prec;\r\n   \u00a0 \u00a0 \u00a0 P^.Succ:=Q;\r\n   \u00a0 \u00a0 \u00a0 Q^.Prec^.Succ:=P;\r\n   \u00a0 \u00a0 \u00a0 Q^.Prec:=P;\r\n \u00a0 \u00a0  End;\r\nEnd;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Puntatore di testa, puntatore di coda e tre nodi con puntatori nelle due direzioni Dichiarazioni Type \u00a0 tInfo \u00a0 = &#8220;qualsiasi&#8221;; {le informazioni nel nodo} \u00a0 pNodoDP = ^NodoDP; \u00a0 NodoDP \u00a0= Record \u00a0 \u00a0 Info: tInfo; \u00a0 \u00a0 Succ, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0{puntatori nelle due direzioni} \u00a0 \u00a0 Prec: pNodoDP; &#8230; <a title=\"Lista bidirezionale\" class=\"read-more\" href=\"https:\/\/www.valcon.it\/pascal\/lista-bidirezionale\/\" aria-label=\"Leggi di pi\u00f9 su Lista bidirezionale\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"_links":{"self":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/619"}],"collection":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/comments?post=619"}],"version-history":[{"count":5,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/619\/revisions"}],"predecessor-version":[{"id":5659,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/posts\/619\/revisions\/5659"}],"wp:attachment":[{"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/media?parent=619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/categories?post=619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.valcon.it\/pascal\/wp-json\/wp\/v2\/tags?post=619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}