數據結構和算法學習(一)線性表、棧和隊列

前言:
本系列主要記錄學習數據結構與算法分析C++版心得。


O:大O,算法(運行時間等)的上限。
Ω:歐米伽,算法(運行時間等)的下限。

Θ:西塔,算法上下限相等。如順序搜索算法。

線性表和單鏈表:包括順序表和鏈表。sequential list 、linked list.
查找元素:單鏈表的缺點在於不能直接訪問第i個元素前面的元素,只能從表頭開始按位置訪問。
插入和刪除:順序表需要移動其餘元素,鏈表僅需移動指針。所以鏈表更好。

優化:C++可以使用動態數組來優化順序表的,此方法的缺點是初始化數組存儲空間需要時間。
缺點:線性表裏的自定義元素如果是另一個自定義類的對象的指針的話,那麼在回收時,需要用戶負責去刪除指針的同時,處理或刪除這些指針所指向的對象。

不用臨時變量交換兩個變量的內容:

a=a^b;
b=a^b; //Now b contains the original value of a
a=a^b; //Now a contains the origiinal value of b


棧(stack)是限定僅在一端進行插入或刪除操作的線性表。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章