{"id":54389,"date":"2019-12-25T00:00:00","date_gmt":"2019-12-24T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/indeksiruemoe-binarnoe-derevo"},"modified":"2020-02-18T14:02:23","modified_gmt":"2020-02-18T11:02:23","slug":"indeksiruemoe-binarnoe-derevo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/indeksiruemoe-binarnoe-derevo","title":{"rendered":"Pema binare e indekseve","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/8ceb987e007db02de04d29f33185e8ec.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>M\u00eb ra n\u00eb dor\u00eb nj\u00eb detyr\u00eb t\u00eb till\u00eb. Nevojitet realizimi i nj\u00eb kontejneri p\u00ebr ruajtjen e t\u00eb dh\u00ebnave q\u00eb ofron funksionalitete t\u00eb m\u00ebposhtme: <\/p>\n<p><\/p>\n<ul>\n<li>shto nj\u00eb element t\u00eb ri<\/li>\n<li>fshij elementin sipas numrit rendor<\/li>\n<li>merr elementin sipas numrit rendor<\/li>\n<li>t\u00eb dh\u00ebnat ruhen n\u00eb form\u00eb t\u00eb renditur<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>T\u00eb dh\u00ebnat vazhdimisht shtohen dhe fshihen, struktura duhet t\u00eb siguroj\u00eb shpejt\u00ebsi t\u00eb lart\u00eb. Fillimisht p\u00ebrpiqesha t\u00eb realizoja nj\u00eb gj\u00eb t\u00eb till\u00eb duke p\u00ebrdorur kontejner\u00ebt standard\u00eb nga <strong>std<\/strong>. Ky rrug\u00eb nuk rezultoi me sukses dhe kuptova se duhej t\u00eb realizoja di\u00e7ka vet\u00eb. E vetmja gj\u00eb q\u00eb m\u00eb erdhi n\u00eb mendje ishte t\u00eb p\u00ebrdorja nj\u00eb pem\u00eb binar\u00eb k\u00ebrkimi. T\u00eb pakt\u00ebn ajo i p\u00ebrmbush k\u00ebrkesat p\u00ebr shtim t\u00eb shpejt\u00eb, fshirje dhe ruajtje t\u00eb t\u00eb dh\u00ebnave n\u00eb form\u00eb t\u00eb renditur. Tani duhet t\u00eb mendonim se si t\u00eb indeksojm\u00eb t\u00eb gjith\u00eb element\u00ebt dhe t\u00eb rip\u00ebrllogarisim indeksat kur pema ndryshon.<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">struct node_s {    \n    data_t data;\n\n    uint64_t weight; \/\/ pesha e nodit\n\n    node_t *left;\n    node_t *right;\n\n    node_t *parent;\n};<\/code><\/pre>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb ket\u00eb m\u00eb shum\u00eb figura dhe teori sesa kod. Kodi mund t\u00eb shikohet n\u00eb lidhjen m\u00eb posht\u00eb.<\/p>\n<p><\/p>\n<h2 id=\"ves\">Pesha<\/h2>\n<p><\/p>\n<p>P\u00ebr k\u00ebt\u00eb, pema u n\u00ebnshtrua nj\u00eb modifikimi t\u00eb vog\u00ebl, nj\u00eb informacion shtes\u00eb u shtua p\u00ebr <strong>pesh\u00ebn<\/strong> nodi. Pesha e nodit \u00ebsht\u00eb <strong>numri i pasardh\u00ebsve t\u00eb k\u00ebtij nodi<\/strong> + <strong>1<\/strong> (pesha e nj\u00eb elementi).<\/p>\n<p><\/p>\n<p>Funksioni p\u00ebr marrjen e pesh\u00ebs s\u00eb nodit:<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">uint64_t bntree::get_child_weight(node_t *node) {\n    if (node) {\n        return node-&gt;weight;\n    }\n\n    return 0;\n}<\/code><\/pre>\n<p><\/p>\n<p>Pesha e gjetheve, p\u00ebrkat\u00ebsisht, \u00ebsht\u00eb <strong>0<\/strong>.<\/p>\n<p><\/p>\n<p>Tani kalojm\u00eb n\u00eb paraqitjen vizuale t\u00eb nj\u00eb shembulli t\u00eb till\u00eb t\u00eb pem\u00ebs. <strong>Me ngjyr\u00eb t\u00eb zez\u00eb<\/strong> do t\u00eb tregohet \u00e7el\u00ebsi i nodit (vlera nuk do t\u00eb tregohet, sepse nuk ka nevoj\u00eb p\u00ebr k\u00ebt\u00eb), <strong>me t\u00eb kuqe<\/strong> \u2014 pesha e nodit, <strong>me t\u00eb verde<\/strong> \u2014 indeksi i nodit.<\/p>\n<p><\/p>\n<p>Kur pema \u00ebsht\u00eb e zbraz\u00ebt, pesha e saj \u00ebsht\u00eb 0. Shtojm\u00eb nj\u00eb element rr\u00ebnj\u00ebsor n\u00eb t\u00eb:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/2d4145039daee26582910556a40d2a5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Pesha e pem\u00ebs b\u00ebhet 1, pesha e elementit rr\u00ebnj\u00ebsor \u00ebsht\u00eb 1. Pesha e elementit rr\u00ebnj\u00ebsor p\u00ebrfaq\u00ebson pesh\u00ebn e pem\u00ebs.<\/p>\n<p><\/p>\n<p>T\u00eb shtojm\u00eb disa element\u00eb t\u00eb tjer\u00eb:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/803cc4a65aa3d8a2fcb20fe325351cfa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/0aa12f41b822b4bb1e9fadb7564dc461.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/8566df9404037e92f53b315bc3304016.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/1847e6ddffdb28d0a6d9a4949ebb5f80.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Sa her\u00eb q\u00eb shtohet nj\u00eb element i ri, ne zbresim p\u00ebrmes nod\u00ebve posht\u00eb dhe rrisim num\u00ebruesin e pesh\u00ebs p\u00ebr \u00e7do nod t\u00eb kaluar. Kur krijohet nj\u00eb nod i ri, i jepet pesha <strong>1<\/strong>. N\u00ebse njihet nj\u00eb nod me nj\u00eb \u00e7el\u00ebs t\u00eb till\u00eb, at\u00ebher\u00eb ne e rip\u00ebrshtatim vler\u00ebn dhe kthehemi mbrapsht deri n\u00eb rr\u00ebnj\u00eb duke anuluar ndryshimet e peshave t\u00eb t\u00eb gjith\u00eb nod\u00ebve q\u00eb kemi kaluar.<br \/>\nN\u00ebse ndodh fshirja e nj\u00eb nodi, ne zbresim posht\u00eb dhe reduktojm\u00eb peshat e nod\u00ebve t\u00eb kaluar. <\/p>\n<p><\/p>\n<h2 id=\"indeksy\">Indeksi<\/h2>\n<p><\/p>\n<p>Tani tani kalojm\u00eb te si t\u00eb indeksojm\u00eb nodet. Nodet nuk e ruajn\u00eb qart\u00eb indeksin e tyre, ai llogaritet mbi baz\u00ebn e pesh\u00ebs s\u00eb nodit. Po t\u00eb ruanin indeksin e tyre, do t\u00eb k\u00ebrkohej <strong>O(n)<\/strong> koha p\u00ebr t\u00eb azhurnuar indeksat e t\u00eb gjitha nodave pas \u00e7do ndryshimi n\u00eb pem\u00eb.<br \/>\nLe t\u00eb kalojm\u00eb n\u00eb nj\u00eb p\u00ebrfaq\u00ebsim vizual. Pema jon\u00eb \u00ebsht\u00eb bosh, le t\u00eb shtojm\u00eb nodin e par\u00eb:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/8a3b176f318cd077b1cf50ddf232e0da.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Nodi i par\u00eb ka indeksin <strong>0<\/strong>, dhe tani ka dy raste t\u00eb mundshme. N\u00eb rastin e par\u00eb, indeksi i elementit rr\u00ebnj\u00eb do t\u00eb ndryshoj\u00eb, n\u00eb rastin e dyt\u00eb nuk do t\u00eb ndryshoj\u00eb.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/cb863be8f42385d3bbb2f46700a8cff3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>N\u00ebn rr\u00ebnj\u00ebn, n\u00ebndega e majt\u00eb ka pesh\u00ebn 1.<\/p>\n<p><\/p>\n<p>Rasti i dyt\u00eb:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/35eec59a81fc8b056c7e91daa3ee508e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Indeksi i rr\u00ebnj\u00ebs nuk ka ndryshuar, pasi pesha e n\u00ebndeg\u00ebs s\u00eb saj t\u00eb majt\u00eb ka mbetur 0.<\/p>\n<p><\/p>\n<p>Si llogaritet indeksi i nodit, \u00ebsht\u00eb pesha e n\u00ebndeg\u00ebs s\u00eb saj t\u00eb majt\u00eb + numri i dh\u00ebn\u00eb nga prindi. \u00c7far\u00eb \u00ebsht\u00eb ky num\u00ebr? Ky \u00ebsht\u00eb numri i indekseve, fillimisht ai \u00ebsht\u00eb <strong>0<\/strong>, pasi rr\u00ebnja nuk ka prind. M\u00eb pas gjith\u00e7ka varet nga se n\u00eb cilin an\u00eb zhytemi, n\u00eb f\u00ebmij\u00ebn e majt\u00eb apo t\u00eb djatht\u00eb. N\u00ebse shkojm\u00eb n\u00eb t\u00eb majt\u00eb, nuk i shtojm\u00eb asgj\u00eb k\u00ebtij numri. N\u00ebse shkojm\u00eb n\u00eb t\u00eb djatht\u00eb, shtojm\u00eb indeksi i nodit aktual.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Pema binare e indekseve\" src=\"\/wp-content\/uploads\/2019\/12\/d328174370ef52c646d8689cce977302.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>P\u00ebr shembull, si llogaritet indeksi i elementit me \u00e7el\u00ebs 8 (f\u00ebmija i djatht\u00eb i burit). Ky \u00ebsht\u00eb \"Indeksi i burit\" + \"pesh\u00ebn e n\u00ebnp\u00ebrmbledhjes s\u00eb majt\u00eb t\u00eb nodit me \u00e7el\u00ebs 8\" + \"1\" == 3 + 2 + 1 == <strong>6<\/strong><br \/>\nIndeksi i elementit me \u00e7el\u00ebs 6 do t\u00eb jet\u00eb \"Indeksi i burit\" + 1 == 3 + 1 == <strong>4<\/strong><\/p>\n<p><\/p>\n<p>P\u00ebrkat\u00ebsisht, p\u00ebr t\u00eb marr\u00eb, t\u00eb fshish elementin sipas indeksit k\u00ebrkohet koha <strong>O(log n)<\/strong>, pasi p\u00ebr t\u00eb marr\u00eb elementin e nevojsh\u00ebm, duhet s\u00eb pari ta gjejm\u00eb at\u00eb (t\u00eb zhytemi nga rr\u00ebnj\u00ebs te ky element).<\/p>\n<p><\/p>\n<h2 id=\"glubina\">Thell\u00ebsia<\/h2>\n<p><\/p>\n<p>Baza pesh\u00ebs gjithashtu mund t\u00eb llogaritet dhe thell\u00ebsia e pem\u00ebs. E nevojshme p\u00ebr balancimin.<br \/>\nP\u00ebr k\u00ebt\u00eb, pesha e nodit aktual duhet t\u00eb rroundohet n\u00eb numrin e par\u00eb t\u00eb fuqis\u00eb 2 q\u00eb \u00ebsht\u00eb m\u00eb i madh ose i barabart\u00eb me k\u00ebt\u00eb pesh\u00eb dhe t\u00eb merret logaritmi dyshifror i saj. K\u00ebshtu do t\u00eb marrim thell\u00ebsin\u00eb e pem\u00ebs, n\u00ebn kushtin q\u00eb ajo t\u00eb jet\u00eb e balancuar. Pema balancohet pas shtimit t\u00eb nj\u00eb elementi t\u00eb ri. Nuk do t\u00eb sjell\u00eb teorin\u00eb se si t\u00eb balancohet pem\u00ebt. N\u00eb kodet burimore \u00ebsht\u00eb e pranishme funksioni i balancimit.<\/p>\n<p><\/p>\n<p>Kodi p\u00ebr t\u00eb kthyer pesh\u00ebn n\u00eb thell\u00ebsi.<\/p>\n<p><\/p>\n<pre><code class=\"cpp\">\/*\n * \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 2, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043b\u0438 \u0440\u043e\u0432\u043d\u043e x\n *\/\nuint64_t bntree::cpl2(uint64_t x) {\n    x = x - 1;\n    x = x | (x &gt;&gt; 1);\n    x = x | (x &gt;&gt; 2);\n    x = x | (x &gt;&gt; 4);\n    x = x | (x &gt;&gt; 8);\n    x = x | (x &gt;&gt; 16);\n    x = x | (x &gt;&gt; 32);\n\n    return x + 1;\n}\n\n\/*\n * \u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0439 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c \u043e\u0442 \u0447\u0438\u0441\u043b\u0430\n *\/\nlong bntree::ilog2(long d) {\n    int result;\n    std::frexp(d, &amp;result);\n    return result - 1;\n}\n\n\/*\n * \u0412\u0435\u0441 \u043a \u0433\u043b\u0443\u0431\u0438\u043d\u0435\n *\/\nuint64_t bntree::weight_to_depth(node_t *p) {\n    if (p == NULL) {\n        return 0;\n    }\n\n    if (p-&gt;weight == 1) {\n        return 1;\n    } else if (p-&gt;weight == 2) {\n        return 2;\n    }\n\n    return this-&gt;ilog2(this-&gt;cpl2(p-&gt;weight));\n}<\/code><\/pre>\n<p><\/p>\n<h2 id=\"itogi\">P\u00ebrfundime<\/h2>\n<p><\/p>\n<ul>\n<li>Shtimi i nj\u00eb elementi t\u00eb ri ndodh brenda <strong>O(log n)<\/strong><\/li>\n<li>fshirjes s\u00eb nj\u00eb elementi sipas numrit t\u00eb rendit ndodh brenda <strong>O(log n)<\/strong><\/li>\n<li>marrjes s\u00eb nj\u00eb elementi sipas numrit t\u00eb rendit ndodh brenda <strong>O(log n)<\/strong><\/li>\n<\/ul>\n<p><\/p>\n<p>Shpejt\u00ebsis\u00eb <strong>O(log n)<\/strong> shk\u00ebmbejm\u00eb p\u00ebr faktin se t\u00eb gjitha t\u00eb dh\u00ebnat ruhen n\u00eb nj\u00eb form\u00eb t\u00eb renditur. <\/p>\n<p><\/p>\n<p>Nuk e di se ku mund t\u00eb p\u00ebrdoret nj\u00eb struktur\u00eb e till\u00eb. Thjesht \u00ebsht\u00eb nj\u00eb detyr\u00eb p\u00ebr t'u theksuar se si funksionojn\u00eb pem\u00ebt. Faleminderit p\u00ebr v\u00ebmendjen.<\/p>\n<p><\/p>\n<h2 id=\"ssylki\">Linket<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dvjdjvu\/bntree\">Kodi burimor i pem\u00ebs<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Projekti p\u00ebrmban t\u00eb dh\u00ebna testuese p\u00ebr t\u00eb verifikuar shpejt\u00ebsin\u00eb e pun\u00ebs. Pema popullon <strong>1000000<\/strong> element\u00ebve. Dhe ndodhin fshirje, inserte dhe marrje t\u00eb elementeve n\u00eb m\u00ebnyr\u00eb t\u00eb renditur <strong>1000000<\/strong> her\u00eb. K\u00ebshtu q\u00eb <strong>3000000<\/strong> operacioneve. Rezultati doli t\u00eb ishte mjaft i mir\u00eb ~ 8 sekonda.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/481372\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u043f\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b: \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u0432\u043e\u043c\u0443 \u043d\u043e\u043c\u0435\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u044b\u0441\u0442\u0440\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u0432\u0435\u0449\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0438\u0437 std. \u042d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c \u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54389","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u043f\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/indeksiruemoe-binarnoe-derevo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u043f\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/indeksiruemoe-binarnoe-derevo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-24T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Pem\u00eb binar\u00ebshe e indeksuar | ProHoster","description":"M\u00eb ka r\u00ebn\u00eb nj\u00eb detyr\u00eb e k\u00ebtij lloji.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/indeksiruemoe-binarnoe-derevo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e | ProHoster","og:description":"\u041f\u043e\u043f\u0430\u043b\u0430\u0441\u044c \u043c\u043d\u0435 \u0437\u0430\u0434\u0430\u0447\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0432\u0438\u0434\u0430.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/indeksiruemoe-binarnoe-derevo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-24T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54389","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 11:11:41","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:07:24","updated":"2026-01-24 11:11:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/54389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=54389"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/54389\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=54389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=54389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=54389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}