C 資料結構第24課 單鏈表的遍歷和優化

2021-10-07 17:05:43 字數 1187 閱讀 3480

問題:如何遍歷單鏈表中的每乙個資料元素

當前單鏈表的遍歷方法:

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...