{"id":1456,"date":"2021-09-01T11:36:05","date_gmt":"2021-09-01T11:36:05","guid":{"rendered":"https:\/\/www.coupontoaster.com\/blog\/?page_id=1456"},"modified":"2023-04-28T13:14:10","modified_gmt":"2023-04-28T13:14:10","slug":"ordinamento-della-memoria-di-elenchi-collegati","status":"publish","type":"page","link":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/","title":{"rendered":"Ordinamento della memoria di elenchi collegati"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"120\" height=\"114\" src=\"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif\" alt=\"\" class=\"wp-image-1458\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"mailto:pje@efgh.com\">pje@efgh.com<\/a><\/li><li><a href=\"http:\/\/www.efgh.com\/\">www.efgh.com<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Data:31 luglio 1998Utilizzo:Dominio pubblico;&nbsp;nessuna restrizione d&#8217;usoPortabilit\u00e0:Qualsiasi compilatore CParole chiave:Elenco collegato, OrdinaAstratto:Funzione AC per ordinare una lista collegata in memoria, utilizzando una funzione di confronto arbitraria e un algoritmo di unione del nastro, che \u00e8 O(n log n) in tutti i casi.&nbsp;La funzione \u00e8 non ricorsiva e rientrante e modifica solo i collegamenti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gli elenchi collegati e le routine di ordinamento sono molto comuni nella programmazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La funzione sort_linked_list() ordiner\u00e0 virtualmente qualsiasi tipo di elenco con collegamento singolo, utilizzando una funzione di confronto fornita dal programma chiamante.&nbsp;Presenta i seguenti vantaggi rispetto a qsort():<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Ordina elementi di dimensione variabile.<\/li><li>Richiede O(n log n) confronti, indipendentemente dall&#8217;ordine iniziale.&nbsp;Il tempo per ordinare un elenco \u00e8 prevedibile e coerente.&nbsp;Questa prestazione \u00e8 nota per essere ottimale per gli ordinamenti generali.<\/li><li>L&#8217;algoritmo \u00e8 iterativo, non ricorsivo, quindi non ci sono problemi di stack overflow.&nbsp;Il requisito dello stack \u00e8 prevedibile, coerente e ridotto.<\/li><li>Ordina l&#8217;elenco collegato modificando i puntatori, non spostando gli elementi stessi.<\/li><li>Pu\u00f2 ordinare un elenco troppo grande per essere inserito in un array.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">La funzione ordina solo elenchi collegati singolarmente.&nbsp;Se una lista \u00e8 doppiamente collegata, i puntatori all&#8217;indietro possono essere ripristinati dopo l&#8217;ordinamento di poche righe di codice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ogni elemento di una lista collegata da ordinare deve contenere, come primi membri, uno o pi\u00f9 puntatori.&nbsp;Uno dei puntatori, che deve trovarsi nella stessa posizione relativa in ogni elemento, \u00e8 un puntatore all&#8217;elemento successivo.&nbsp;Questo puntatore \u00e8 NULL nell&#8217;ultimo elemento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;indice \u00e8 la posizione di questo puntatore in ogni elemento.&nbsp;\u00c8 0 per il primo puntatore, 1 per il secondo puntatore, ecc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sia compare() una funzione di confronto che confronta due elementi come segue:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">     n = confronta(p, q, puntatore); \n\n     vuoto *p, *q; puntatori a due elementi della lista \n\n     void *pointer; puntatore definito dall'utente passato a compare() da \n                     linked_list_sort() \n\n     int n; risultato del confronto di *p e *q \n                       &gt;0 se *p deve essere dopo *q in ordine \n                       &lt;0 se *p deve essere prima di *q in ordine \n                        0 se l'ordine di *p e *q \u00e8 irrilevante\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sia &#8220;first&#8221; un puntatore al primo elemento della lista.&nbsp;Quindi la seguente chiamata di funzione ordina l&#8217;elenco e restituisce un puntatore al primo elemento dell&#8217;elenco ordinato:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">     first_sorted = \n       sort_linked_list(first, index, compare, pointer, pcount);\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il quarto argomento (puntatore) viene passato a compare() senza modifiche.&nbsp;L&#8217;esempio qui fornito non fa uso del puntatore.&nbsp;Tuttavia, pu\u00f2 essere una caratteristica preziosa se due o pi\u00f9 metodi di confronto condividono una notevole quantit\u00e0 di codice e differiscono solo per uno o pi\u00f9 valori dei parametri.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;ultimo argomento (pcount) \u00e8 di tipo (unsigned long *).&nbsp;Se non \u00e8 NULL, allora *pcount \u00e8 uguale al numero di record nell&#8217;elenco.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 consentito ordinare un elenco vuoto.&nbsp;Se prima == NULL, anche il valore restituito sar\u00e0 NULL.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ad esempio, un elemento pu\u00f2 contenere sia un nome che un numero:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">    struct element \n    { \n      struct element *next_in_alphabetical_order; \n      elemento struttura *next_in_numerical_order; \n      nome del carattere[9]; \n      numero int; \n      \/* altri membri, se presenti *\/ \n    };\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Inizialmente, i due puntatori in ogni elemento sono identici e l&#8217;elenco \u00e8 in ordine arbitrario, dove &#8220;first&#8221; \u00e8 un puntatore al primo elemento.&nbsp;Le seguenti due chiamate di funzione ordinano l&#8217;elenco due volte:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">    first_in_alphabetical_order = \n      sort_linked_list(first, 0, compare_names, NULL); \n    first_in_numerical_order = \n      sort_linked_list(first, 1, compare_numbers, NULL);\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco le funzioni di confronto:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">    int compare_names(struct element *p, struct element *q, \n      void *pointer) \n    { \n      return strcmp(p-&gt;name, q-&gt;name); \n    } \n\n    int compare_numbers(struct element *p, struct element *q, \n      void *pointer) \n    { \n      return p-&gt;number &gt; q-&gt;number ? 1 : -1; \n      \/* NOTA: return p-&gt;number - q-&gt;number sar\u00e0 sufficiente se non \n      c'\u00e8 pericolo di overflow numerico *\/ \n    }\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una versione precedente di questo tipo, pubblicata su una rivista tecnica, richiedeva che il collegamento in avanti fosse all&#8217;inizio di ogni elemento.&nbsp;Sebbene ci\u00f2 rendesse l&#8217;ordinamento un po&#8217; pi\u00f9 efficiente, ne rendeva anche difficile l&#8217;uso con pi\u00f9 elenchi collegati.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;algoritmo \u00e8 abbastanza semplice.&nbsp;L&#8217;elenco collegato (chiamato &#8220;nastro&#8221; per analogia ai vecchi nastri magnetici) viene prima diviso in due nastri della stessa dimensione o quasi.&nbsp;Questo viene fatto &#8220;scrivendo&#8221; elementi sui due nastri alternativamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I due nastri vengono quindi uniti, elemento per elemento, in blocchi ordinati contenenti ciascuno due elementi.&nbsp;I blocchi vengono scritti alternativamente su altri due nastri.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I due nastri vengono quindi uniti, blocco per blocco, in blocchi ordinati di quattro elementi ciascuno, e i blocchi vengono scritti alternativamente su altri due nastri.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il processo continua, raddoppiando ogni volta la dimensione del blocco, finch\u00e9 tutti gli elementi non si trovano in un unico blocco ordinato su un nastro.&nbsp;La funzione restituisce un puntatore al primo elemento di quel nastro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ogni unione richiede O(n) confronti, dove n \u00e8 il numero di elementi.&nbsp;Il numero di unioni \u00e8 O(log n).&nbsp;Quindi l&#8217;intero ordinamento richiede O(n log n) confronti.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La funzione sort_linked_list() \u00e8 rientrante se la funzione di confronto \u00e8 rientrante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gli appassionati saranno felici di sapere che questo algoritmo non pu\u00f2 essere codificato facilmente in Ada o Pascal perch\u00e9 si basa su typecast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La funzione sort_linked_list() pu\u00f2 essere chiamata facilmente da un programma C++ con un minimo di controllo del tipo se \u00e8 incluso il file di intestazione LLMSORT.H.&nbsp;Contiene un modello per la generazione in linea di una chiamata su sort_linked_list().&nbsp;Il formato del bando \u00e8 il seguente:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">     #include \"llmsort.h\" \n\n     first_sorted = sort_list(first, compare, pointer, pcount); \n\n     la tua classe *prima; \n     la tua classe *first_sorted; \n     void *puntatore; \n     unsigned long *pcount;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La funzione compare() viene chiamata come segue:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">     n = confronta(p, q, puntatore); \n     const la tua classe *p; \n     const la tua classe *q; \n     void *puntatore; \n     int n;\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Qui &#8220;yourclass&#8221; \u00e8 qualsiasi classe che puoi definire.&nbsp;Il compilatore verificher\u00e0 la coerenza dei tipi di argomento e generer\u00e0 la chiamata appropriata su sort_linked_list().<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Codice sorgente in formato testo:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"http:\/\/www.efgh.com\/software\/llmsortc.txt\">llmsort.c<\/a><\/li><li><a href=\"http:\/\/www.efgh.com\/software\/llmsorth.txt\">llmsort.h<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una traduzione cinese di questa pagina \u00e8 disponibile su&nbsp;<a href=\"https:\/\/mattressmozz.com\/portfolio\/llmsort\">https:\/\/mattressmozz.com\/portfolio\/llmsort<\/a>&nbsp;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.com www.efgh.com Data:31 luglio 1998Utilizzo:Dominio pubblico;&nbsp;nessuna restrizione d&#8217;usoPortabilit\u00e0:Qualsiasi compilatore CParole chiave:Elenco collegato, OrdinaAstratto:Funzione AC per ordinare una lista collegata in memoria, utilizzando una funzione di confronto arbitraria&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1456","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.7 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Ordinamento della memoria di elenchi collegati - Coupontoaster Blog<\/title>\n<meta name=\"description\" content=\"Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.comwww.efgh.com Data:31 luglio 1998Utilizzo:Dominio\" \/>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ordinamento della memoria di elenchi collegati - Coupontoaster Blog\" \/>\n<meta property=\"og:description\" content=\"Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.comwww.efgh.com Data:31 luglio 1998Utilizzo:Dominio\" \/>\n<meta property=\"og:url\" content=\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/\" \/>\n<meta property=\"og:site_name\" content=\"Coupontoaster Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/coupontoaster\/\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-28T13:14:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@coupontoaster\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/\",\"url\":\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/\",\"name\":\"Ordinamento della memoria di elenchi collegati - Coupontoaster Blog\",\"isPartOf\":{\"@id\":\"https:\/\/coupontoaster.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif\",\"datePublished\":\"2021-09-01T11:36:05+00:00\",\"dateModified\":\"2023-04-28T13:14:10+00:00\",\"description\":\"Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.comwww.efgh.com Data:31 luglio 1998Utilizzo:Dominio\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/#primaryimage\",\"url\":\"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif\",\"contentUrl\":\"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/coupontoaster.com\/blog\/#website\",\"url\":\"https:\/\/coupontoaster.com\/blog\/\",\"name\":\"Coupontoaster Blog\",\"description\":\"We Appreciate The Quality Content\",\"publisher\":{\"@id\":\"https:\/\/coupontoaster.com\/blog\/#organization\"},\"alternateName\":\"Coupontoaster\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/coupontoaster.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/coupontoaster.com\/blog\/#organization\",\"name\":\"Coupontoaster\",\"alternateName\":\"Coupontoaster.com\",\"url\":\"https:\/\/coupontoaster.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/coupontoaster.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/coupontoaster.com\/blog\/wp-content\/uploads\/2024\/01\/coupontoaster_logo.webp\",\"contentUrl\":\"https:\/\/coupontoaster.com\/blog\/wp-content\/uploads\/2024\/01\/coupontoaster_logo.webp\",\"width\":291,\"height\":62,\"caption\":\"Coupontoaster\"},\"image\":{\"@id\":\"https:\/\/coupontoaster.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/coupontoaster\/\",\"https:\/\/x.com\/coupontoaster\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ordinamento della memoria di elenchi collegati - Coupontoaster Blog","description":"Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.comwww.efgh.com Data:31 luglio 1998Utilizzo:Dominio","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"en_US","og_type":"article","og_title":"Ordinamento della memoria di elenchi collegati - Coupontoaster Blog","og_description":"Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.comwww.efgh.com Data:31 luglio 1998Utilizzo:Dominio","og_url":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/","og_site_name":"Coupontoaster Blog","article_publisher":"https:\/\/www.facebook.com\/coupontoaster\/","article_modified_time":"2023-04-28T13:14:10+00:00","og_image":[{"url":"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@coupontoaster","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/","url":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/","name":"Ordinamento della memoria di elenchi collegati - Coupontoaster Blog","isPartOf":{"@id":"https:\/\/coupontoaster.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/#primaryimage"},"image":{"@id":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/#primaryimage"},"thumbnailUrl":"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif","datePublished":"2021-09-01T11:36:05+00:00","dateModified":"2023-04-28T13:14:10+00:00","description":"Titolo:Ordinamento della memoria di elenchi collegatiLingua:CAutore:Philip J. Erdelsky pje@efgh.comwww.efgh.com Data:31 luglio 1998Utilizzo:Dominio","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/coupontoaster.com\/blog\/ordinamento-della-memoria-di-elenchi-collegati\/#primaryimage","url":"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif","contentUrl":"https:\/\/www.coupontoaster.com\/blog\/wp-content\/uploads\/2021\/09\/sitelogo-1.gif"},{"@type":"WebSite","@id":"https:\/\/coupontoaster.com\/blog\/#website","url":"https:\/\/coupontoaster.com\/blog\/","name":"Coupontoaster Blog","description":"We Appreciate The Quality Content","publisher":{"@id":"https:\/\/coupontoaster.com\/blog\/#organization"},"alternateName":"Coupontoaster","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/coupontoaster.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/coupontoaster.com\/blog\/#organization","name":"Coupontoaster","alternateName":"Coupontoaster.com","url":"https:\/\/coupontoaster.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/coupontoaster.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/coupontoaster.com\/blog\/wp-content\/uploads\/2024\/01\/coupontoaster_logo.webp","contentUrl":"https:\/\/coupontoaster.com\/blog\/wp-content\/uploads\/2024\/01\/coupontoaster_logo.webp","width":291,"height":62,"caption":"Coupontoaster"},"image":{"@id":"https:\/\/coupontoaster.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/coupontoaster\/","https:\/\/x.com\/coupontoaster"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/pages\/1456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/comments?post=1456"}],"version-history":[{"count":0,"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/pages\/1456\/revisions"}],"wp:attachment":[{"href":"https:\/\/coupontoaster.com\/blog\/wp-json\/wp\/v2\/media?parent=1456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}