資料結構之樹(其三)

2022-06-19 06:27:09 字數 2818 閱讀 7680

二叉搜尋樹中的搜尋

先從上至下找到該節點,再把該節點一層層地傳上來。

classsolution 

}

二叉搜尋樹的插入操作 題目

解析

遞迴每一層傳是自己。相當於沒有傳遞。可以和上一題的遞迴對比一下。第二個解法相當於第三個解法的簡寫。

class

solution

else

}else

if (temp.val else}}

return

root;

}}

class

solution

}

classsolution 

public void build(treenode root, intval)

cur =root;

if (root.val >val) build(root.left, val);

if (root.val }

}

二叉搜尋樹的刪除操作 題目

解析

要注意的是刪除時的五種情況,依然是返回每一層的節點。

class

solution

root.left =temp;

return

cur;}}

root.left =deletenode(root.left, key);

root.right =deletenode(root.right, key);

return

root;

}}

將有序陣列轉換成二叉搜尋樹 題目

解析

分治,左閉右閉。(左閉右開也可以)

class

solution

public treenode build(int nums, int l, int

r) }

有序鍊錶轉換二叉搜尋樹

因為鍊錶的特性,用左閉又開會更好

class

solution

public

treenode build(listnode p, listnode q)

public

listnode getmid(listnode p, listnode q)

return

low;

}}

驗證二叉搜尋樹 題目

解析

二叉搜尋樹在中序遍歷時是從小到大排序的。

classsolution 

}

classsolution 

return true;

}public voidinorder(treenode root)

}

二叉搜尋樹的最小絕對差 題目

解析

如何保留前乙個節點?

classsolution 

private voidget(treenode root)

pre =root;

get(root.right);

}}

二叉搜尋樹中的眾樹 題目

解析

難住我的竟是list轉陣列?

classsolution 

returna;

}public voidbst(treenode root)

else count = 1;

pre =root;

if (max ==count)

if (count >max)

bst(root.right);

}}

二叉樹的最近公共祖先 題目

解析解析

底部不是空就是p,q。向上移的過程中如果傳來空就捨棄,將p,q節點的祖先向上傳遞。如果左右節點都不為空,那麼就是公共祖先啦。再往上因為另一邊為空,

所以最近公共祖先一直往上傳,直到頂部。

classsolution 

}

二叉搜尋樹的最近公共祖先 題目

解析

自上而下,利用二叉搜尋樹的特性。

classsolution 

if (root.val < p.val && root.val returnroot;

}}

修剪二叉搜尋樹 題目

解析

改成這樣更容易理解,每一次遞迴(每一層)只需要關注當前的三種選擇。

class

solution

else

if (root.val >high)

else

return

root;

}}

把二叉樹轉換成累加樹 題目

解析

我一開始把cur=root放在最前面了,那是不對的。因為cur應該記錄的是改變後的節點。函式裡面的root怎麼變,如果不返回,只是本次呼叫裡面變化了,外部是沒有變的,要想外部變就必須返回。cur是函式之外的,你可以把它當作是全域性變數。

class

solution

}

演算法與資料結構 其三 棧的實現

上一小節 演算法與資料結構 其n 陣列和鍊錶 的實現 這一小節就講講 棧的實現 什麼是棧 stack 棧就是乙個容器 杯子?碗?隨便你想叫什麼都行 先放進去 push 的資料,就只能放在容器底部,最後放進去的資料,就會在最上面。那我們要獲取資料 pop 就只能從最上面的開始拿出來。如果你只看看,不進...

資料結構之 樹

1.雙親表示法 下標 資料 parentid 2.孩子表示法 data child1 child2 child3 3.雙親孩子表示法 下標 parentid firstchildid secondchildid 節點 下標 next 頁的話next應該是null 4.孩子兄弟表示法 data 第一次...

資料結構之樹

一 樹的基本概念 樹 tree 是元素的集合,樹有多個節點可以儲存元素 二 二叉樹 每個節點最多有兩個子節點的樹稱為二叉樹 常用來做二分查詢 binary search 等 三 b樹 即二叉搜尋樹 binary search tree 是一種特殊形態的二叉樹 1 所有節點最多擁有2個子節點 2 所有...