`
liuzhaomin
  • 浏览: 207725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Apache内存池中分配结点补充说明

阅读更多

这是一个网友发给我的,一直没有能发上来,今天补充以下!

tingyablogApache内存池内幕第一章节中对apr_memnode_t(内存分配结点,以下简称结点)的结构体成员做了较详细说明,在本文中对结点做进一步补充说明。

以下是结点定义:

struct apr_memnode_t {

apr_memnode_t *next; /**< next memnode */

apr_memnode_t **ref; /**< reference to self */

apr_uint32_t index; /**< size */

apr_uint32_t free_index; /**< how much free */

char *first_avail; /**< pointer to first free memory */

char *endp; /**< pointer to end of free memory */

};

注意:next,ref两变量,其中ref的注释存在歧义。

Apache中,所有的内存使用都需要通过内存池来分配,以提高Apache的内存分配与回收的速度,减少系统调用。这在tingyablog中已有较详细的解释。下图是摘自<<apache内存池内幕4>>

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1028" style="WIDTH: 450.75pt; HEIGHT: 168.75pt" alt="n0" type="#_x0000_t75"><imagedata o:href="http://asp.6to23.com/vcprogram/image/memory7.jpg" src="file:///C:%5CDOCUME~1%5Ctingya%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.jpg"></imagedata></shape>

上图是apr_pool_t的结构体成员图,在该图中,有一个active成员,该成员是apr_memnode_t*类型,管理着池中可用内存链表,上面提到的next,ref正是跟active合用管理了一个完整的可用内存链表。具体的链表用法请见tingyablog中的讨论。下面我就这两个成员的实际功能做补充说明。

apr_memnode_t *next;

apr_memnode_t **ref;

从定义上看next的意义一目了然,是指向链表的下一结点,而ref是一个二级指针,在内存池的创建函数(apr_pool_create_ex)中,内存池对象也需要向结点申请内存,而该结点又会被放在池对象的active链表中管理:

node->next = node;

node->ref = &node->next;

………

pool->active = pool->self = node;

这时ref指向的是next的地址,这时候链表中只有一个结点;在链表操作时,会使用以下两句代码:

list_insert(active, node);插入操作

list_remove(active);删除操作

这是两个宏定义:

#define list_insert(node, point) do { \

node->ref = point->ref; \

*node->ref = node; \

node->next = point; \

point->ref = &node->next; \

} while (0)

/* list_remove() removes 'node' from its list. */

#define list_remove(node) do { \

*node->ref = node->next; \

node->next->ref = node->ref; \

} while (0)

在宏定义中,list_insert操作,是向链表中point结点后面插入一个结点,

node->ref = point->ref;

当链表中只有一个结点时,这时

<group id="_x0000_s1092" style="WIDTH: 414pt; HEIGHT: 241.8pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" coordsize="8280,4836" coordorigin="1800,8262" editas="canvas"><lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_s1093" style="LEFT: 1800px; WIDTH: 8280px; POSITION: absolute; TOP: 8262px; HEIGHT: 4836px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><fill o:detectmouseclick="t"></fill><path o:connecttype="none" o:extrusionok="t"></path><lock v:ext="edit" text="t"></lock></font></shape><group id="_x0000_s1094" style="LEFT: 3852px; WIDTH: 1080px; POSITION: absolute; TOP: 8574px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1095" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1096" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">next</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1097" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ref</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1098" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><group id="_x0000_s1099" style="LEFT: 1872px; WIDTH: 1080px; POSITION: absolute; TOP: 8574px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1100" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1101" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1102" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">active</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1103" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><group id="_x0000_s1104" style="LEFT: 1872px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1105" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1106" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1107" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1108" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><line id="_x0000_s1109" style="POSITION: absolute; flip: y" to="3852,9822" from="2952,8574"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><shape id="_x0000_s1110" style="LEFT: 4932px; WIDTH: 438px; POSITION: absolute; TOP: 8646px; HEIGHT: 552px; mso-position-horizontal: absolute; mso-position-vertical: absolute" filled="f" path="m,552l438,542,423,6,18,e" coordsize="438,552"><font face="Times New Roman"><font size="3"><stroke endarrow="block"></stroke><path arrowok="t"></path></font></font></shape><shape id="_x0000_s1111" style="LEFT: 4572px; WIDTH: 513px; POSITION: absolute; TOP: 9345px; HEIGHT: 477px; mso-position-horizontal: absolute; mso-position-vertical: absolute" filled="f" path="m,561l513,540,498,,18,9e" coordsize="513,561"><font face="Times New Roman"><font size="3"><stroke endarrow="block"></stroke><path arrowok="t"></path></font></font></shape><shapetype id="_x0000_t202" path="m,l,21600r21600,l21600,xe" o:spt="202" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><path o:connecttype="rect" gradientshapeok="t"></path></shapetype><shape id="_x0000_s1112" style="LEFT: 4932px; WIDTH: 1980px; POSITION: absolute; TOP: 12474px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</span><span lang="EN-US"><font face="Times New Roman">1</font></span></font></p> </div> </td> </tr></tbody></table></textbox></shape><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/tingya/2.jpg"><wrap type="none"></wrap><anchorlock></anchorlock></group>

上图是内存池初始时的链表状态,ref指向的是next,即ref=&next.

运行list_insert(node,point):

<group id="_x0000_s1063" style="WIDTH: 414pt; HEIGHT: 241.8pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" coordsize="8280,4836" coordorigin="1800,8262" editas="canvas"><lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_s1064" style="LEFT: 1800px; WIDTH: 8280px; POSITION: absolute; TOP: 8262px; HEIGHT: 4836px" o:preferrelative="f" type="#_x0000_t75"><fill o:detectmouseclick="t"></fill><path o:connecttype="none" o:extrusionok="t"></path><lock v:ext="edit" text="t"></lock></shape><group id="_x0000_s1065" style="LEFT: 3852px; WIDTH: 1080px; POSITION: absolute; TOP: 8574px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1066" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1067" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">next</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1068" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ref</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1069" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><group id="_x0000_s1070" style="LEFT: 1872px; WIDTH: 1080px; POSITION: absolute; TOP: 8574px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1071" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1072" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1073" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">active</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1074" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><group id="_x0000_s1075" style="LEFT: 1872px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1076" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1077" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1078" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1079" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><line id="_x0000_s1080" style="POSITION: absolute; flip: y" to="3852,9822" from="2952,8574"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><shape id="_x0000_s1081" style="LEFT: 4932px; WIDTH: 1980px; POSITION: absolute; TOP: 12474px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</span><span lang="EN-US"><font face="Times New Roman">2</font></span></font></p> </div> </td> </tr></tbody></table></textbox></shape><group id="_x0000_s1082" style="LEFT: 5832px; WIDTH: 1080px; POSITION: absolute; TOP: 8574px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1083" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1084" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">next</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1085" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ref</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1086" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><shape id="_x0000_s1087" style="LEFT: 4032px; WIDTH: 720px; POSITION: absolute; TOP: 10491px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"><span lang="EN-US"><font face="Times New Roman" size="3">node</font></span></p> </div> </td> </tr></tbody></table></textbox></shape><line id="_x0000_s1088" style="POSITION: absolute; flip: y" to="5832,9198" from="4572,8574"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><line id="_x0000_s1089" style="POSITION: absolute; flip: x y" to="6012,9666" from="4572,9354"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><shape id="_x0000_s1090" style="LEFT: 4755px; WIDTH: 2595px; POSITION: absolute; TOP: 8290px; HEIGHT: 992px; mso-position-horizontal: absolute; mso-position-vertical: absolute" filled="f" path="m2157,992r438,-19l2580,,,8,30,372e" coordsize="2595,992"><font size="3"><font face="Times New Roman"><stroke endarrow="block"></stroke><path arrowok="t"></path></font></font></shape><line id="_x0000_s1091" style="POSITION: absolute; flip: y" to="5832,9822" from="4572,9198"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><wrap type="none"></wrap><anchorlock></anchorlock></group>

运行list_insert(node1, node):

<group id="_x0000_s1026" style="WIDTH: 414pt; HEIGHT: 243.9pt; mso-position-horizontal-relative: char; mso-position-vertical-relative: line" coordsize="8280,4878" coordorigin="1800,8262" editas="canvas"><lock aspectratio="t" v:ext="edit"></lock><shape id="_x0000_s1027" style="LEFT: 1800px; WIDTH: 8280px; POSITION: absolute; TOP: 8262px; HEIGHT: 4878px" o:preferrelative="f" type="#_x0000_t75"><font size="3"><font face="Times New Roman"><fill o:detectmouseclick="t"></fill><path o:connecttype="none" o:extrusionok="t"></path><lock v:ext="edit" text="t"></lock></font></font></shape><group id="_x0000_s1028" style="LEFT: 6114px; WIDTH: 1080px; POSITION: absolute; TOP: 8772px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1029" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1030" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">next</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1031" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ref</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1032" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><group id="_x0000_s1033" style="LEFT: 1872px; WIDTH: 1080px; POSITION: absolute; TOP: 8574px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1034" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1035" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1036" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">active</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1037" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><group id="_x0000_s1038" style="LEFT: 1872px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1039" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1040" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1041" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1042" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><line id="_x0000_s1043" style="POSITION: absolute; flip: y" to="4212,9822" from="2952,8886"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><shape id="_x0000_s1044" style="LEFT: 4932px; WIDTH: 1980px; POSITION: absolute; TOP: 12474px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">图</span><span lang="EN-US"><font face="Times New Roman">3</font></span></font></p> </div> </td> </tr></tbody></table></textbox></shape><group id="_x0000_s1045" style="LEFT: 8094px; WIDTH: 1080px; POSITION: absolute; TOP: 8772px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1046" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1047" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">next</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1048" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ref</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1049" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><p><font face="Times New Roman" size="3"></font></p></span></p> </div> </td> </tr></tbody></table></textbox></rect></group><shape id="_x0000_s1050" style="LEFT: 6294px; WIDTH: 720px; POSITION: absolute; TOP: 10689px; HEIGHT: 468px" stroked="f" type="#_x0000_t202"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"><span lang="EN-US"><font face="Times New Roman" size="3">node</font></span></p> </div> </td> </tr></tbody></table></textbox></shape><line id="_x0000_s1051" style="POSITION: absolute; flip: y" to="8094,9396" from="6834,8772"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><line id="_x0000_s1052" style="POSITION: absolute; flip: x y" to="8274,9864" from="6834,9552"><stroke endarrow="block"><font face="Times New Roman" size="3"></font></stroke></line><shape id="_x0000_s1053" style="LEFT: 4752px; WIDTH: 4935px; POSITION: absolute; TOP: 8446px; HEIGHT: 891px; mso-position-horizontal: absolute; mso-position-vertical: absolute" filled="f" path="m4368,884r567,7l4906,,,7,3,348e" coordsize="4935,891"><font size="3"><font face="Times New Roman"><stroke endarrow="block"></stroke><path arrowok="t"></path></font></font></shape><group id="_x0000_s1054" style="LEFT: 4212px; WIDTH: 1080px; POSITION: absolute; TOP: 8772px; HEIGHT: 1872px" coordsize="1080,1872" coordorigin="2952,9042"><rect id="_x0000_s1055" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9042px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">……</font></span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1056" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9510px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">next</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1057" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 9978px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody><tr> <td style="BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; BORDER-TOP-COLOR: #d4d0c8; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8"> <div> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体; mso-font-kerning: 0pt">ref</span></p> </div> </td> </tr></tbody></table></textbox></rect><rect id="_x0000_s1058" style="LEFT: 2952px; WIDTH: 1080px; POSITION: absolute; TOP: 10446px; HEIGHT: 468px" fillcolor="#9cf"><textbox><table cellspacing="0" cellpadding="0" width="100%"><tbody>&

分享到:
评论

相关推荐

    Apache内存池内幕

    #### 五、Apache内存池中分配结点补充说明 在Apache内存池中,分配结点扮演着至关重要的角色。通过维护一个有序的内存分配结点链表,可以有效地追踪和管理内存池中分配出去的所有内存块。 **补充说明:** - **内存...

    环境流体力学:河流流动模拟.zip

    光电材料仿真,电子仿真等;从入门到精通教程;含代码案例解析。

    C#实现Stewart六自由度平台反解算法及其应用

    内容概要:本文详细介绍了如何使用C#实现Stewart六自由度平台的逆解算法。首先定义了平台的基本结构,包括上下平台的半径、安装角度以及舵机零位偏移等参数。接着,通过欧拉角转换为旋转矩阵的方式实现了姿态转换,并在此基础上计算各个支腿的长度。文中还特别强调了一些常见的陷阱,如角度单位一致性、安装方向匹配、零位校准和数值稳定性等问题。此外,提供了具体的测试用例用于验证算法的正确性和性能。 适合人群:具有一定C#编程基础并对机械臂控制、飞行模拟器或手术机器人等领域感兴趣的开发者和技术人员。 使用场景及目标:适用于需要精确控制六自由度平台的应用场合,如飞行模拟器、手术机器人等。主要目的是通过数学模型将平台的姿态转换为具体的操作指令,从而实现精准定位与操控。 其他说明:文中不仅给出了完整的代码实现,还分享了许多实践经验,帮助读者更好地理解和应用该算法。同时提醒开发者在实际项目中需要注意的一些关键点,如行程限制检查、运动学奇异性检测等。

    夸克网盘批量处理助手,同步更新保存分享链接文件,增量更新文件,批量重命名文件夹,文件名称关键词替换

    夸克网盘批量处理助手,同步更新保存分享链接文件,增量更新文件,批量重命名文件夹,文件名称关键词替换

    XML.md

    XML.md

    MATLAB实现光纤光栅均匀与非均匀应变仿真及其在光学传感的应用

    内容概要:本文详细介绍了利用MATLAB进行光纤光栅的均匀应变和非均匀应变仿真的方法。文中提供了具体的代码实例,解释了如何通过调整光栅的基本参数如中心波长、光栅长度、有效折射率等,以及引入应变系数和应变分布函数,分别计算均匀应变和非均匀应变下光纤光栅的反射率,并展示了相应的反射率曲线图。此外,还讨论了这两种应变模式对光栅反射谱的不同影响,强调了非均匀应变可能导致的光谱畸变现象。 适用人群:对光纤光栅仿真感兴趣的研究人员和技术爱好者,尤其是那些希望通过MATLAB进行光器件设计和测试的人群。 使用场景及目标:①用于科研项目中光纤光栅特性的研究;②辅助工程师在实际工程项目中评估光纤光栅传感器的表现;③帮助学生理解光纤光栅的工作机制和应变对其性能的影响。 其他说明:文章不仅提供了详细的代码实现步骤,还分享了一些调试技巧和注意事项,有助于读者更好地理解和应用所介绍的技术。

    计算机网络基于b站的学习笔记

    计算机网络概念,计算机网络,互联网,互连网的区别;计算机网络的组成、功能;三种交换技术;计算机网络的性能指标;以及计算机网络的分类

    基于Simulink的ABS仿真模型及其PID控制策略的应用与优化

    内容概要:本文详细介绍了如何使用Simulink搭建防抱死制动系统(ABS)的仿真模型,并应用PID控制策略进行仿真分析。首先,文章解释了ABS系统的重要性和工作原理,然后逐步讲解了如何在Simulink中构建车轮动力学模块、制动压力模块等关键组件。接下来,文章深入探讨了PID控制策略的具体实现方法,包括PID参数的选择和调整技巧。通过多次仿真实验,展示了不同PID参数对ABS系统性能的影响,并提出了优化方案,如变增益策略和积分分离策略。最后,文章分享了一些实用的经验和技巧,如处理低速时的数值稳定性、应对路面突变等情况。 适合人群:对汽车工程、控制系统设计感兴趣的工程师和技术爱好者,尤其是那些希望深入了解ABS系统和PID控制策略的人群。 使用场景及目标:适用于希望在虚拟环境中研究和优化ABS系统性能的研究人员和工程师。主要目标是提高ABS系统的制动性能和安全性,确保在各种工况下都能保持最佳的制动效果。 其他说明:文中不仅提供了理论知识,还包括了大量的实际案例和代码片段,帮助读者更好地理解和应用所学内容。此外,作者还分享了许多实践经验,如如何处理仿真中的常见问题和优化策略。

    独子棋demo.rar

    独子棋demo.rar

    基于Maxwell-Simplorer的永磁同步电机SVPWM控制联合仿真研究

    内容概要:本文详细介绍了如何利用Maxwell和Simplorer进行矢量联合仿真,结合SVPWM(空间矢量脉宽调制)算法实现对永磁同步电机的精确控制。文章首先解释了SVPWM的基本原理及其Python实现,接着阐述了在Maxwell中建立电机模型并设置参数的具体步骤,以及在Simplorer中搭建控制系统的方法。文中还讨论了仿真过程中如何调整控制器参数以优化系统性能,并展示了如何通过分析仿真结果来评估控制效果。此外,文章探讨了将该方法应用于其他类型电机的可能性,如感应电机和开关磁阻电机。 适合人群:从事电机控制领域的研究人员和技术人员,尤其是对永磁同步电机和SVPWM算法感兴趣的读者。 使用场景及目标:适用于需要深入了解永磁同步电机控制原理的研究人员,帮助他们掌握Maxwell和Simplorer联合仿真的具体操作流程,提高对电机控制系统的理解和优化能力。 其他说明:文章不仅提供了详细的理论讲解,还附有大量代码片段和实践经验,有助于读者更好地理解和应用相关技术。同时,文章强调了实践中可能遇到的问题及解决方法,使读者能够在实际工作中避免常见错误。

    【太阳能电池片图像处理】基于边缘检测与频域滤波的预处理系统设计:图像倾斜校正及栅格去除(论文复现或解答,含详细代码及解释)

    内容概要:本文详细介绍了太阳能电池片在线颜色分选系统的图像预处理方法。针对采集的原始图像中存在的传送带背景和随机倾斜等问题,提出了完整的预处理流程。主要包括:倾斜校正(通过边缘检测和霍夫变换)、去除栅格干扰(频域滤波和形态学操作),以及对多种边缘检测算子(如Roberts、Sobel、Prewitt、Canny和LOG)的比较与分析。此外,还探讨了不同直线检测方法(如Radon变换、Hough变换及其改进版本)的应用,并优化了整个预处理流程,确保后续的颜色特征提取和分类准确性。 适用人群:从事计算机视觉、图像处理领域的研究人员和技术人员,特别是专注于工业自动化检测设备开发的工程师。 使用场景及目标:①实现太阳能电池片图像的倾斜校正,确保图像水平放置;②有效去除电池片表面栅线对颜色分析的影响;③为后续的颜色特征提取和分类提供高质量的输入数据;④比较不同边缘检测算子的效果,选择最适合特定任务的算子;⑤评估各种直线检测方法的性能,选择最优方案应用于实际生产环境中。 其他说明:文中不仅提供了详细的理论解释,还给出了具体的Python代码实现,帮助读者更好地理解和实践相关技术。同时,针对实际应用中的常见问题,如参数调优、光照一致性和异常处理等方面也给出了相应的建议。最后,通过一系列实验验证了所提方法的有效性,并提出了一些性能优化的方向。

    Comsol锂离子电池仿真:电化学-热耦合模型与多物理场分析助力电池热管理

    内容概要:本文详细介绍了利用Comsol进行锂离子电池仿真的技术和应用,特别是在电化学-热耦合模型和多物理场分析方面。文章首先阐述了电化学-热耦合模型在充放电循环中的应用,通过MATLAB伪代码展示了如何定义电池几何形状、材料属性、边界条件以及耦合电化学和热传递过程。接下来讨论了液冷仿真与电池热管理模型,通过Python伪代码解释了液冷通道的构建、流体属性的设置及其流动与热传递的求解。此外,文章还比较了锂电池产热模型下风冷和液冷的不同效果,并强调了产热计算的重要性。最后,文章分享了一些实用的经验和技术细节,如处理高倍率充电时的浓度极化、选择合适的湍流模型、刀片电池的建模技巧等。 适合人群:从事锂离子电池研究和开发的科研人员、工程师及相关领域的学生。 使用场景及目标:①理解和优化锂离子电池的热管理机制;②评估不同冷却方式(如风冷、液冷)的效果;③提高电池系统的性能和安全性。 其他说明:文中不仅提供了详细的理论背景和技术实现步骤,还分享了许多实践经验,有助于读者更好地掌握Comsol在锂离子电池仿真中的应用。

    智能驾驶领域AEB系统的安全距离与TTC切换优化算法及其应用场景

    内容概要:本文探讨了自动紧急制动系统(AEB)中安全距离与时间头时距(TTC)的优化方法。首先介绍了AEB系统的基本原理,包括安全距离和TTC的定义及计算方式。接着提出了基于机器学习的动态调整机制,通过分析历史驾驶数据,训练回归模型预测最优安全距离,并设计了基于规则的智能切换机制,根据车速选择合适的评估标准。此外,通过仿真测试验证了改进算法的有效性,展示了其在低速跟车、高速变道等场景中的优越表现。最后,讨论了联合仿真中的挑战,如多物理场耦合与时序同步问题,并提供了相应的解决方案。 适合人群:从事智能驾驶技术研发的专业人士,尤其是对AEB系统有研究兴趣的工程师和技术爱好者。 使用场景及目标:适用于希望深入了解AEB系统工作原理及优化方法的研发团队。目标是通过改进现有算法,提高AEB系统在各种驾驶场景下的鲁棒性和安全性。 其他说明:文中提到的技术细节和代码片段有助于读者更好地理解和实现相关算法。同时指出了现有研究存在的局限性,为进一步探索提供了方向。

    数据结构.md

    数据结构.md

    格式化输出.md

    格式化输出.md

    三相不平衡电网下模块化多电平变流器(MMC)的先进控制策略及其实现

    内容概要:本文详细探讨了在三相不平衡电网条件下,模块化多电平变流器(MMC)的多种控制策略及其具体实现方法。主要内容包括:利用双二阶广义积分器(DSOGI)进行正负序分离控制,通过PI控制器实现零负环流抑制,以及采用谐振控制器抑制二倍频功率波动。此外,文中还介绍了不同控制模式之间的动态切换逻辑,确保系统在各种工况下的稳定性和高效性。文章提供了详细的MATLAB、Python和Verilog代码片段,展示了各个控制环节的具体实现。 适合人群:从事电力电子、电力系统自动化领域的研究人员和技术人员,尤其是对MMC控制策略感兴趣的工程师。 使用场景及目标:适用于需要解决三相不平衡电网问题的研究项目和工业应用场景。主要目标是在电压跌落等恶劣工况下,确保MMC系统的稳定性和平滑运行,提高系统的鲁棒性和效率。 其他说明:文中引用了多篇相关领域的权威文献,为读者提供了进一步深入研究的方向。同时,作者强调了理论仿真与实际调试之间的差距,提醒读者在实验过程中需要注意的安全事项。

    Python编程与PyQt GUI应用开发

    本书是关于Python编程语言和使用PyQt框架开发图形用户界面(GUI)应用的全面指南。首先介绍了Python的基础知识,包括安装、与Python交互、编写第一个程序、数据类型、基本元素、注释、续行和打印等。随后,深入探讨了Python的算术运算、位运算、复数、决策、逻辑运算符、循环等核心概念。接着,书中详细讲解了序列(包括字符串、列表、元组和集合)、函数和模块、类(包括类声明、方法、继承、垃圾回收、运算符重载和描述符)、文件处理以及异常处理。最后,作者重点介绍了PyQt框架,包括安装、窗口和对话框的创建、使用代码和Qt Designer创建GUI应用程序、基础控件、事件处理、高级控件(如LCD时钟、日历、组合框、表格、Web页面和图形显示)、菜单和工具栏的使用。本书适合希望学习Python编程和GUI开发的读者。

    espidf启动流程基于esp32c3

    espidf启动流程

    煤矿瓦斯气驱技术中二氧化碳与氮气应用的Python自动化解决方案

    内容概要:本文详细介绍了利用Python进行煤矿瓦斯气驱过程中二氧化碳和氮气的应用方法和技术细节。首先展示了如何通过Python脚本处理气驱压力监测数据并绘制对比图,接着讲解了注气速率控制的PID算法实现及其注意事项。文中还涉及裂隙气体扩散模拟、湿度对氮气驱替的影响以及基于状态机的注气控制系统设计。此外,提供了实时气体浓度监控、数据滤波、阈值报警等功能的具体实现方式,并强调了数据可视化的应用价值。最后讨论了注气孔布置优化和注气压力控制的实际操作要点。 适合人群:从事煤矿开采及相关领域的技术人员、工程师,尤其是具有一定编程基础并对自动化控制感兴趣的从业者。 使用场景及目标:适用于煤矿瓦斯气驱项目的规划、实施与维护阶段,旨在提高瓦斯抽采效率,确保安全生产,同时减少人为因素导致的操作失误。通过学习本文提供的代码示例和技术方案,读者能够掌握如何运用Python解决实际工程问题的方法。 其他说明:文中提到的所有代码均为简化版本,用于解释相关概念和技术原理,在实际项目中可能需要进一步完善和优化。对于希望深入了解该领域的读者而言,本文不仅提供了实用的技术指导,也为后续研究奠定了良好的基础。

Global site tag (gtag.js) - Google Analytics