玩轉資料結構之遞迴

2021-10-03 15:44:47 字數 510 閱讀 1952

遞迴本質上,將原來的問題,轉化成更小的同一問題

遞迴函式的呼叫,本質上就是函式的呼叫,只不過是函式在內部呼叫自己

寫遞迴的**一般兩個部分:1. 遞迴的終止條件也叫最基本問題  2. 遞迴演算法也叫原問題轉化為最基本問題的過程

舉例:陣列求和

//sum(a0+a1+......+an-1) 求n個數的和

//遞迴就是把原問題轉化成乙個最基本的問題

//sum(a0+a1+......+an-1) = a0 + sum(a1+a2+......+an-1) 依次分解

//sum(an-1) = an-1 + sum() 這就是遞迴的最基本問題

public int sum(arr)

private int sum(arr, l)

對上乙個鍊錶刪除元素問題的遞迴方法解釋

玩轉資料結構之鍊錶

線性資料結構中,動態陣列 棧 佇列,底層都需要依託靜態陣列,靠resize來解決固定容量的問題。鍊錶是真正的動態資料結構,並且是最簡單的動態資料結構。鍊錶 linked list 資料儲存jii在 節點 node 中 優點 真正的動態,不需要處理固定容量的問題。缺點 喪失了隨機訪問的能力。陣列最好用...

玩轉資料結構《一》

集合是承載元素的容器 特點 每個元素只能存在一次 優點 去重 linkedlist bstadd o n o logn contains o n o logn remove o n o logn 有序集合 元素中具有順序性 多重集合 有序對映和無序對映 有序對映中鍵具有順序性的 無序對映中鍵沒有順序...

資料結構之遞迴

本篇是資料結構與演算法之美學習筆記 遞迴在電腦科學中指一種通過將重複問題分解為同列子問題來解決問題的方法。遞迴是一種常見的演算法或者程式設計技巧。很多資料結構和演算法的編碼實現都會使用到遞迴,比附dfs深度搜尋,前中後序二叉樹遍歷等等。遞迴需要滿足三個條件 1.乙個問題的解可以分成幾個解。子問題就是...