問題:如何遍歷單鏈表中的每乙個資料元素
當前單鏈表的遍歷方法:
linklistlist;
for(int i = 0;i < 5;i++) //只在0位置處插入,時間複雜度o(n)
for(int i = 0;i < list.length()
;i++) //時間複雜度o(n^2)
遺憾的是:我們不能以線性的時間複雜度來完成單鏈表的遍歷(意思就我我們輸出的時候也希望時間複雜度是 o(n))
bool move
(int i, int step = 1)
;bool end()
;t current()
;bool next()
;
函式實現:
protected
: node* m_current;
int m_step;
public:
linklist()
bool move(int i, int step = 1)
return ret;
}bool end()
t current()
else
}bool next()
return (i == m_step)
;}
main.cpp
#include #include "linklist.h"
using namespace std;
using namespace dtlib;
int main()
for(list.move
(0, 2)
; !list.end()
; list.next()) //時間複雜度為 o(n)
提出問題:封裝 creat 和 destroy 函式的意義是什麼? C 資料結構 單鏈表
c 實現 首先,構造乙個單鏈表的節點類 class link 然後是以這個節點類為基礎,建立單鏈錶類 這裡簡單實現了單鏈表的兩個功能新增和輸出 class linklist if head.next null else if head.next null 列印全部資料 public void pri...
c 資料結構單鏈表
鍊錶定義 typedef struct linklistlinklist,linknode linklist 表示頭結點,linknode 表示節點linklist head linknode node 鍊錶初始化 bool linkinit linklist l l next null l dat...
C 資料結構 單鏈表
單鏈表的實現 include using namespace std template typename t struct node template typename t class linklist template typename t linklist linklist template t...