微軟的vs208所使用的pj stl(注1)中的list是雙鏈表,但在某些場合,乙個輕量級的單鏈表會更加合適。單鏈表非常常見,這裡就不去細說了,本文的slist(single linked list)單鏈表實現了鍊錶的基本功能,如有需要,以後還會擴充的。slist單鏈表(帶頭結點)的示意圖如下所示:
完整的c++**如下:
//帶頭結點的單鏈表
//by morewindows( )
template
t>struct
node};template
t>class
slist;template
t>slist
::slist()template
t>slist
::~slist() m_nlistdatacount = 0;}template
t>void
slist
::push_front(t &t)template
t>bool
slist
::find(t &t)template
t>int
slist
::size()//刪除鍊錶中第乙個值為t的結點
template
t>bool
slist
::remove(t &t) pprenode = pnode; pnode = pnode->next; } return
false;}//會刪除鍊錶中所有值為t的結點
template
t>bool
slist
::removeall(t &t) else } return flagdeletenode;}template
t>void
slist
::clear() m_head = null;}
注1.stl分為很多版本,微軟的vs系列使用的是pj stl。而《stl原始碼剖析》書中主要使用sgi stl。
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!
微軟的vs208所使用的pj stl(注1)中的list是雙鏈表,但在某些場合,乙個輕量級的單鏈表會更加合適。單鏈表非常常見,這裡就不去細說了,本文的slist(single linked list)單鏈表實現了鍊錶的基本功能,如有需要,以後還會擴充的。slist單鏈表(帶頭結點)的示意圖如下所示:
完整的c++**如下:
//帶頭結點的單鏈表
//by morewindows( )
template
t>struct
node};template
t>class
slist;template
t>slist
::slist()template
t>slist
::~slist() m_nlistdatacount = 0;}template
t>void
slist
::push_front(t &t)template
t>bool
slist
::find(t &t)template
t>int
slist
::size()//刪除鍊錶中第乙個值為t的結點
template
t>bool
slist
::remove(t &t) pprenode = pnode; pnode = pnode->next; } return
false;}//會刪除鍊錶中所有值為t的結點
template
t>bool
slist
::removeall(t &t) else } return flagdeletenode;}template
t>void
slist
::clear() m_head = null;}
注1.stl分為很多版本,微軟的vs系列使用的是pj stl。而《stl原始碼剖析》書中主要使用sgi stl。 STL系列之八 slist單鏈表
微軟的vs208所使用的pj stl 注1 中的list是雙鏈表,但在某些場合,乙個輕量級的單鏈表會更加合適。單鏈表非常常見,這裡就不去細說了,本文的slist single linked list 單鏈表實現了鍊錶的基本功能,如有需要,以後還會擴充的。slist單鏈表 帶頭結點 的示意圖如下所示 ...
STL系列之八 slist單鏈表
微軟的vs208所使用的pj stl 注1 中的list是雙鏈表,但在某些場合,乙個輕量級的單鏈表會更加合適。單鏈表非常常見,這裡就不去細說了,本文的slist single linked list 單鏈表實現了鍊錶的基本功能,如有需要,以後還會擴充的。slist單鏈表 帶頭結點 的示意圖如下所示 ...
STL系列之八 slist單鏈表
微軟的vs208所使用的pj stl 注1 中的list是雙鏈表,但在某些場合,乙個輕量級的單鏈表會更加合適。單鏈表非常常見,這裡就不去細說了,本文的slist single linked list 單鏈表實現了鍊錶的基本功能,如有需要,以後還會擴充的。slist單鏈表 帶頭結點 的示意圖如下所示 ...