📄 group____gdsl__list.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>gdsl: Low-level doubly-linked list manipulation module</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.6 --><div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul></div><h1>Low-level doubly-linked list manipulation module</h1><p><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Typedefs</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group____gdsl__node.html#g05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">GDSL low-level doubly-linked list type. <a href="#g14ec3b9bcad935bbefd3ed0a7d16ec60"></a><br></td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g57a11c1dce767fba29167f0e09490273">_gdsl_list_alloc</a> (const <a class="el" href="group__gdsl__types.html#g0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> E)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new low-level list. <a href="#g57a11c1dce767fba29167f0e09490273"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g1d678c65359011d9fdd30bc5bf3868ad">_gdsl_list_free</a> (<a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group__gdsl__types.html#g2c6b3f96b291b5b39d2799f93e350053">gdsl_free_func_t</a> FREE_F)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy a low-level list. <a href="#g1d678c65359011d9fdd30bc5bf3868ad"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__gdsl__types.html#gf6a258d8f3ee5206d682d799316314b1">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g8a96775d8a4f2ef2bc8314e1c9fa1b88">_gdsl_list_is_empty</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Check if a low-level list is empty. <a href="#g8a96775d8a4f2ef2bc8314e1c9fa1b88"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__gdsl__types.html#g9c34ac44da309b004570530c8cec8a0e">ulong</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g248e9f738c456411893c3190e83cefc0">_gdsl_list_get_size</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Get the size of a low-level list. <a href="#g248e9f738c456411893c3190e83cefc0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g37955fa777f96d9ed9626952dc5b49b1">_gdsl_list_link</a> (<a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L1, <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L2)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Link two low-level lists together. <a href="#g37955fa777f96d9ed9626952dc5b49b1"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g5d52d9c65f0f33ccdbbe50bbb0b94f30">_gdsl_list_insert_after</a> (<a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> PREV)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Insert a low-level list after another one. <a href="#g5d52d9c65f0f33ccdbbe50bbb0b94f30"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g429e78d2df26cc234e95d63af0a6af71">_gdsl_list_insert_before</a> (<a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> SUCC)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Insert a low-level list before another one. <a href="#g429e78d2df26cc234e95d63af0a6af71"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g1d63ca580e0a81b65cf82cb1745b8f2c">_gdsl_list_remove</a> (<a class="el" href="group____gdsl__node.html#g05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a> NODE)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a node from a low-level list. <a href="#g1d63ca580e0a81b65cf82cb1745b8f2c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#gbf2044c1f1b5a93cb4b41bedf73263d9">_gdsl_list_search</a> (<a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group__gdsl__types.html#g200177a9a1ac3f2363e228b0e5faeda7">gdsl_compare_func_t</a> COMP_F, void *VALUE)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Search for a particular node in a low-level list. <a href="#gbf2044c1f1b5a93cb4b41bedf73263d9"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#gc1c5040a9d4148395bc565fc49fd0d56">_gdsl_list_map_forward</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#g0b641a2e9711f86cfaa79db3b5756be9">_gdsl_node_map_func_t</a> MAP_F, void *USER_DATA)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Parse a low-level list in forward order. <a href="#gc1c5040a9d4148395bc565fc49fd0d56"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#gaea78d722a9d8459e11c4ca964821772">_gdsl_list_map_backward</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#g0b641a2e9711f86cfaa79db3b5756be9">_gdsl_node_map_func_t</a> MAP_F, void *USER_DATA)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Parse a low-level list in backward order. <a href="#gaea78d722a9d8459e11c4ca964821772"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g85f7da27dbb6602503a994e321213cd7">_gdsl_list_write</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#gdad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a> WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Write all nodes of a low-level list to a file. <a href="#g85f7da27dbb6602503a994e321213cd7"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g40b6ddda2aaedcdcf3daee1bfe9f5428">_gdsl_list_write_xml</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#gdad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a> WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Write all nodes of a low-level list to a file into XML. <a href="#g40b6ddda2aaedcdcf3daee1bfe9f5428"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group____gdsl__list.html#g695985820d95fd3e89856efbcfb39b46">_gdsl_list_dump</a> (const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> L, const <a class="el" href="group____gdsl__node.html#gdad0aa5e5c7572c5c136ca774ad36e95">_gdsl_node_write_func_t</a> WRITE_F, FILE *OUTPUT_FILE, void *USER_DATA)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Dump the internal structure of a low-level list to a file. <a href="#g695985820d95fd3e89856efbcfb39b46"></a><br></td></tr></table><hr><h2>Typedef Documentation</h2><a class="anchor" name="g14ec3b9bcad935bbefd3ed0a7d16ec60"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_t" ref="g14ec3b9bcad935bbefd3ed0a7d16ec60" args="" --><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">typedef <a class="el" href="group____gdsl__node.html#g05a586e2272f3b89acaa43e1efc73e1b">_gdsl_node_t</a> <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>GDSL low-level doubly-linked list type. <p>This type is voluntary opaque. Variables of this kind could'nt be directly used, but by the functions of this module. <p>Definition at line <a class="el" href="__gdsl__list_8h-source.html#l00054">54</a> of file <a class="el" href="__gdsl__list_8h-source.html">_gdsl_list.h</a>. </td> </tr></table><hr><h2>Function Documentation</h2><a class="anchor" name="g57a11c1dce767fba29167f0e09490273"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_alloc" ref="g57a11c1dce767fba29167f0e09490273" args="(const gdsl_element_t E)" --><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__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> _gdsl_list_alloc </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group__gdsl__types.html#g0e2b9d7fb5ca9e6d50100e5d9e4bcae7">gdsl_element_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>E</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>Create a new low-level list. <p>Allocate a new low-level list data structure which have only one node. The node's content is set to E.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>nothing. </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>E</em> </td><td>The content of the first node of the new low-level list to create. </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the newly allocated low-level list 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__list.html#g1d678c65359011d9fdd30bc5bf3868ad">_gdsl_list_free()</a> </dd></dl> </td> </tr></table><a class="anchor" name="g1d678c65359011d9fdd30bc5bf3868ad"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_free" ref="g1d678c65359011d9fdd30bc5bf3868ad" args="(_gdsl_list_t L, const gdsl_free_func_t FREE_F)" --><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">void _gdsl_list_free </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td> <td class="mdname" nowrap> <em>L</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>const <a class="el" href="group__gdsl__types.html#g2c6b3f96b291b5b39d2799f93e350053">gdsl_free_func_t</a> </td> <td class="mdname" nowrap> <em>FREE_F</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>Destroy a low-level list. <p>Flush and destroy the low-level list L. If FREE_F != NULL, then the FREE_F function is used to deallocated each L's element. Otherwise, nothing is done with L's elements.<p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>nothing. </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>L</em> </td><td>The low-level list to destroy. </td></tr> <tr><td valign="top"></td><td valign="top"><em>FREE_F</em> </td><td>The function used to deallocated L's nodes contents. </td></tr> </table></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group____gdsl__list.html#g57a11c1dce767fba29167f0e09490273">_gdsl_list_alloc()</a> </dd></dl> </td> </tr></table><a class="anchor" name="g8a96775d8a4f2ef2bc8314e1c9fa1b88"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_is_empty" ref="g8a96775d8a4f2ef2bc8314e1c9fa1b88" args="(const _gdsl_list_t L)" --><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#gf6a258d8f3ee5206d682d799316314b1">bool</a> _gdsl_list_is_empty </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>L</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>Check if a low-level list is empty. <p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( 1 ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>nothing. </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>L</em> </td><td>The low-level list to check. </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>TRUE if the low-level list L is empty. <p>FALSE if the low-level list L is not empty. </dd></dl> </td> </tr></table><a class="anchor" name="g248e9f738c456411893c3190e83cefc0"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_get_size" ref="g248e9f738c456411893c3190e83cefc0" args="(const _gdsl_list_t L)" --><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#g9c34ac44da309b004570530c8cec8a0e">ulong</a> _gdsl_list_get_size </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td> <td class="mdname1" valign="top" nowrap> <em>L</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>Get the size of a low-level list. <p><dl compact><dt><b>Note:</b></dt><dd>Complexity: O( |L| ) </dd></dl><dl compact><dt><b>Precondition:</b></dt><dd>nothing. </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>L</em> </td><td>The low-level list to use. </td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the number of elements of L (noted |L|). </dd></dl> </td> </tr></table><a class="anchor" name="g37955fa777f96d9ed9626952dc5b49b1"></a><!-- doxytag: member="_gdsl_list.h::_gdsl_list_link" ref="g37955fa777f96d9ed9626952dc5b49b1" args="(_gdsl_list_t L1, _gdsl_list_t L2)" --><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">void _gdsl_list_link </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="group____gdsl__list.html#g14ec3b9bcad935bbefd3ed0a7d16ec60">_gdsl_list_t</a> </td> <td class="mdname" nowrap> <em>L1</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -