<div dir="ltr"><div>Yes,<br></div>something like 1/priority_value (for instance) might work.<br><div class="gmail_extra"><br><div class="gmail_quote">On 13 July 2015 at 03:12, Henning Rogge <span dir="ltr"><<a href="mailto:hrogge@gmail.com" target="_blank">hrogge@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
just that I understand it right... you can normally only access "one<br>
end" of the PQ easily... so if you want to get a "maximum queue" you<br>
need some code-change... or you just have to negate the key before<br>
inserting an element.<br>
<span><font color="#888888"><br>
Henning<br>
</font></span><div><div><br>
On Sun, Jul 12, 2015 at 2:56 PM, Saulo Queiroz <<a href="mailto:ssaulojorge@gmail.com" target="_blank">ssaulojorge@gmail.com</a>> wrote:<br>
> Yes with a little remark to functions of type first/last. We have two kinds<br>
> o PQs: MINimum and MAXimum. In min PQs, item priority means being associated<br>
> to low values (case of Dijkstra). In this case, get_first would return the<br>
> item with lowest number but get_last doesn't make sense. Similar situation<br>
> happens for max priority queues.<br>
> ....<br>
><br>
> the lower the priority number associated<br>
><br>
> Em 12/07/2015 04:26, "Henning Rogge" <<a href="mailto:hrogge@gmail.com" target="_blank">hrogge@gmail.com</a>> escreveu:<br>
>><br>
>> On Sun, Jul 12, 2015 at 3:48 AM, Saulo Queiroz <<a href="mailto:ssaulojorge@gmail.com" target="_blank">ssaulojorge@gmail.com</a>><br>
>> wrote:<br>
>> >> Basics for both lists and AVL trees in OONF (which is the base of<br>
>> >> OLSRv2)<br>
>> >> is<br>
>> >> - init<br>
>> >> - insert<br>
>> >> - remove<br>
>> >> - get(key)<br>
>> >> - get_first<br>
>> >> - get_last<br>
>> >><br>
>> >> and a good way to iterate over the elements of the tree/list (which<br>
>> >> would enable me to write iterator macros like the ones in<br>
>> >><br>
>> >><br>
>> >> <a href="http://olsr.org/git/?p=oonf.git;a=blob;f=src-api/common/list.h;h=a6146dcc9eb4d70ef1c2ae32b382df0460d948b0;hb=master#l315" rel="noreferrer" target="_blank">http://olsr.org/git/?p=oonf.git;a=blob;f=src-api/common/list.h;h=a6146dcc9eb4d70ef1c2ae32b382df0460d948b0;hb=master#l315</a><br>
>> >> ).<br>
>> >><br>
>> >> Can we have the same functions for a binary heap?<br>
>> ><br>
>> > It is possible but i think few procedures don't sound reasonable because<br>
>> > binary heaps<br>
>> > are Priority Queues (PQs) by nature being different from the typical<br>
>> > data<br>
>> > structures.<br>
>> > In general, one employs priority queues when all items are expected to<br>
>> > leave<br>
>> > the structure until the end of the execution of a procedure (what is<br>
>> > very<br>
>> > usual in the so-called "greedy algorithms" like Dijkstra). In "normal"<br>
>> > data<br>
>> > structures, there is no problem if an item stay in the structure<br>
>> > "forever".<br>
>><br>
>> Okay,<br>
>><br>
>> so its more like<br>
>><br>
>> - insert<br>
>> - remove first/last<br>
>> - get first/last<br>
>><br>
>> Maybe even with get and remove combined into the same function, so<br>
>> that you can get the first/last element of the heap and remove it.<br>
>><br>
>> Does this make more sense?<br>
>><br>
>> Henning<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div>Saulo Jorge bq<br>-<br>"In theory, there is no difference between practice and theory, in practice there is"<br>-- Someone</div>
</div></div>