提供一組遍歷相關的函式,以線性的時間複雜度遍歷鍊錶
函式功能說明
move()
將游標定位到目標位置
next()
移動游標
current()
獲取游標所指向的資料元素
end()
游標是否到達尾部
bool
move
(int i,
int step =1)
;bool
end();
t current()
;bool
next()
;
int
move
(int i,
int step =1)
return ret;
}bool
end(
) t current()
else
}bool
next()
return
(i == m_step)
;}
int
main()
for(list.
move(0
);!list.
end(
);list.
next()
)return0;
}
輸出:4 3 2 1 0
優化封裝結點的申請和刪除操作
virtual node*
create()
virtual
void
destory
(node* pn)
十 單鏈表的遍歷與優化
遍歷單鏈表中的每個一資料元素 linklistlist for int i 0 i 5 i o n 這裡的遍歷方法效率很低 for int i 0 i list.length i o n 2 遍歷鍊錶的時間複雜度不是線性的,插入元素是線性,遍歷就不是了。不能以線性的時間複雜度完成單鏈表的遍歷 設計思...
12 單鏈表排序
思路1 將鍊錶中的資料存入陣列中,使用陣列進行排序,排好後再存入鍊錶中。當然這並不是這題所要考察的。但是在實際應用中卻相當有價值。因為鍊錶中的排序演算法都比較慢,進行轉存再排序也是一種很好的方法。思路2 排序演算法有 1,插入排序 簡單插入排序,希爾排序 2,交換排序 氣泡排序,快速排序 3,選擇排...
單鏈表的建立,遍歷
結構體和主函式 include using namespace std typedef struct node node,list 定義乙個結構體 儲存鍊錶 intmain return0 單鏈表的建立 尾插法 void creatlist list l,int n 尾插法建立單鏈表 單鏈表的遍歷 ...