常見線性資料結構有陣列和鍊錶
遍歷方法分為以下兩種
迴圈遍歷
首先是陣列遍歷
var arr = [1,2,3,4,5,6,7,8];
function bianarr(arr)
}
其中在演算法中嚴謹性判斷非常重要,任何報錯行為都是不允許的,嚴謹性判斷是演算法的要素,在陣列中我們可以通過length獲取陣列長度,在長度已知情況下我們可以採用for迴圈遍歷
鍊錶遍歷
function node(value)
var node1 = new node(1);
var node2 = new node(2);
var node3 = new node(3);
var node4 = new node(4);
var node5 = new node(5);
node1.next = node2
node2.next = node3
node3.next = node4
node4.next = node5
function bianlink(root) else
temp = temp.next;
}}
在鍊錶中我們無法獲取該鍊錶長度,用while(true)迴圈是較好的選擇
,首先用temp寄存根節點,在不為空的情況下 列印當前value,為空則結束,此時將temp = temp.next來獲取當前節點所指向的下乙個節點投入新的迴圈
遞迴遍歷
首先是陣列
function bianarr(arr,i)
其次是遍歷鍊錶
function bianlink(root)
在遍歷鍊錶中,我們較為推薦遞迴演算法,遞迴鍊錶的契機是在於當前節點,在當前節點不為空的前提下,列印當前節點的value,並且將當前節點所指向的下乙個節點作為引數重新呼叫該方法,如果為空則結束迴圈
這樣看來在遍歷總 簡單來說是自己呼叫自己,並且引數具有蔓延性,在使用遞迴時候先思考出口在哪,可以方便快速搭建遞迴方法
資料結構與演算法學習總結(一)
1.什麼是資料結構和演算法 資料結構,就是一組資料的儲存結構。演算法,就是運算元據的一組方法。資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。2.為什麼要學習資料結構和演算法?1 對個人 資料結構和演算法是程式設計師的必修課程之一,能幫助我們寫出效能更優更好的 演算法,是一種解決問題的思...
資料結構與演算法學習總結(二)
1.什麼是複雜度分析?1 資料結構和演算法解決是 如何讓計算機更快時間 更省空間的解決問題 2 因此需要從執行時間和占用空間兩個維度來評估資料結構和演算法的效能。3 分別用時間複雜度和空間複雜度兩個概念描述效能問題,二者統稱為複雜度。4 複雜度描述的是演算法執行時間 或占用空間 與資料規模的增長關係...
演算法學習 資料結構2
1 資料結構概述 數結構是計算機中對資料的一種儲存和組織方式,同是也泛指相互之間存在一種或多種特定關係的資料的集合。2 資料結構中的基本概念 資料 data 資料是資訊的載體,其能夠被計算機識別 儲存和加工處理,是電腦程式加強的 原材料 資料元素 data element 資料元素是資料的基本單位,...