📄 group__gdsl__queue.html
字号:
<td class="mdname" nowrap> <em>Q</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>VALUE</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Insert an element in a queue (PUT). <p>Allocate a new element E by calling Q's ALLOC_F function on VALUE. ALLOC_F is the function pointer passed to <a class="el" href="group__gdsl__queue.html#g98006ec73e032caed82bc17880072abf">gdsl_queue_alloc()</a>. The new element E is then inserted at the header position of the queue Q.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>Q must be a valid gdsl_queue_t </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Q</em> </td><td>The queue to insert in </td></tr> <tr><td valign="top"></td><td valign="top"><em>VALUE</em> </td><td>The value used to make the new element to insert into Q </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the inserted element E in case of success. <p>NULL in case of insufficient memory. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__queue.html#g82b677888c8830cf524de6b0bd7f9814">gdsl_queue_remove()</a> </dd></dl> </td> </tr></table><a class="anchor" name="g82b677888c8830cf524de6b0bd7f9814"></a><!-- doxytag: member="gdsl_queue.h::gdsl_queue_remove" ref="g82b677888c8830cf524de6b0bd7f9814" args="(gdsl_queue_t Q)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__types.html#g0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> gdsl_queue_remove </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__queue.html#g984e79831245f6a8194295299afc71ea">gdsl_queue_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>Q</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Remove an element from a queue (GET). <p>Remove the element at the footer position of the queue Q.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>Q must be a valid gdsl_queue_t </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Q</em> </td><td>The queue to remove the tail from </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the removed element in case of success. <p>NULL in case of Q is empty. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__queue.html#gea1d99dd4c2cefa1cc23bcb6fcc71aa8">gdsl_queue_insert()</a> </dd></dl> </td> </tr></table><a class="anchor" name="gd729451f16f125127cb27ebbc1716eac"></a><!-- doxytag: member="gdsl_queue.h::gdsl_queue_search" ref="gd729451f16f125127cb27ebbc1716eac" args="(const gdsl_queue_t Q, gdsl_compare_func_t COMP_F, void *VALUE)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__types.html#g0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> gdsl_queue_search </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group__gdsl__queue.html#g984e79831245f6a8194295299afc71ea">gdsl_queue_t</a> </td> <td class="mdname" nowrap> <em>Q</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__gdsl__types.html#g200177a9a1ac3f2363e228b0e5faeda7">gdsl_compare_func_t</a> </td> <td class="mdname" nowrap> <em>COMP_F</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>VALUE</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Search for a particular element in a queue. <p>Search for the first element E equal to VALUE in the queue Q, by using COMP_F to compare all Q's element with.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |Q| / 2 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>Q must be a valid gdsl_queue_t & COMP_F != NULL </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Q</em> </td><td>The queue to search the element in </td></tr> <tr><td valign="top"></td><td valign="top"><em>COMP_F</em> </td><td>The comparison function used to compare Q's element with VALUE </td></tr> <tr><td valign="top"></td><td valign="top"><em>VALUE</em> </td><td>The value to compare Q's elements with </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the first founded element E in case of success. <p>NULL in case the searched element E was not found. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__queue.html#gcd42fa493e982b05f5937299cbacabf4">gdsl_queue_search_by_position</a> </dd></dl> </td> </tr></table><a class="anchor" name="gcd42fa493e982b05f5937299cbacabf4"></a><!-- doxytag: member="gdsl_queue.h::gdsl_queue_search_by_position" ref="gcd42fa493e982b05f5937299cbacabf4" args="(const gdsl_queue_t Q, ulong POS)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__types.html#g0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> gdsl_queue_search_by_position </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group__gdsl__queue.html#g984e79831245f6a8194295299afc71ea">gdsl_queue_t</a> </td> <td class="mdname" nowrap> <em>Q</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__gdsl__types.html#g9c34ac44da309b004570530c8cec8a0e">ulong</a> </td> <td class="mdname" nowrap> <em>POS</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Search for an element by its position in a queue. <p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |Q| / 2 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>Q must be a valid gdsl_queue_t & POS > 0 & POS <= |Q| </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Q</em> </td><td>The queue to search the element in </td></tr> <tr><td valign="top"></td><td valign="top"><em>POS</em> </td><td>The position where is the element to search </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the element at the POS-th position in the queue Q. <p>NULL if POS > |L| or POS <= 0. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__queue.html#gd729451f16f125127cb27ebbc1716eac">gdsl_queue_search()</a> </dd></dl> </td> </tr></table><a class="anchor" name="g33943cf6767a0a3fc9e5445324fe6dcc"></a><!-- doxytag: member="gdsl_queue.h::gdsl_queue_map_forward" ref="g33943cf6767a0a3fc9e5445324fe6dcc" args="(const gdsl_queue_t Q, gdsl_map_func_t MAP_F, void *USER_DATA)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="group__gdsl__types.html#g0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> gdsl_queue_map_forward </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group__gdsl__queue.html#g984e79831245f6a8194295299afc71ea">gdsl_queue_t</a> </td> <td class="mdname" nowrap> <em>Q</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap><a class="el" href="group__gdsl__types.html#g2500bfaaec5df890e72b43f448f13ee8">gdsl_map_func_t</a> </td> <td class="mdname" nowrap> <em>MAP_F</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>USER_DATA</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Parse a queue from head to tail. <p>Parse all elements of the queue Q from head to tail. The MAP_F function is called on each Q's element with USER_DATA argument. If MAP_F returns GDSL_MAP_STOP, then <a class="el" href="group__gdsl__queue.html#g33943cf6767a0a3fc9e5445324fe6dcc">gdsl_queue_map_forward()</a> stops and returns its last examinated element.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |Q| ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>Q must be a valid gdsl_queue_t & MAP_F != NULL </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>Q</em> </td><td>The queue to parse </td></tr> <tr><td valign="top"></td><td valign="top"><em>MAP_F</em> </td><td>The map function to apply on each Q's element </td></tr> <tr><td valign="top"></td><td valign="top"><em>USER_DATA</em> </td><td>User's datas passed to MAP_F </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the first element for which MAP_F returns GDSL_MAP_STOP. <p>NULL when the parsing is done. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__gdsl__queue.html#g23b534e3ef5e617544134c77340e78ae">gdsl_queue_map_backward()</a> </dd></dl> </td> </tr></table><a class="anchor" name="g23b534e3ef5e617544134c77340e78ae"></a><!-- doxytag: member="gdsl_queue.h::gdsl_queue_map_backward" ref="g23b534e3ef5e617544134c77340e78ae" args="(const gdsl_queue_t Q, gdsl_map_func_t MAP_F, void *USER_DATA)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -