資料結構的擴張 演算法導論第14章(194)

2021-07-08 11:29:36 字數 965 閱讀 3640

偽**解釋

為明白os-select是如何操作的,在上圖所示的順序統計圖上查詢第17小元素的查詢過程。以x為根開始,其關鍵字為26。i=17.因為在26的左子樹大小為12,故他的秩為13,因此,秩為17的節點是26的右子樹第17-13=4小得瑟元素。遞迴呼叫後,x為關鍵字41的節點,i=4,因為41的左子樹大小為5,故他的秩為6,這樣,可以知道秩為秩為4的節點是41的左子樹的第4小元素。再次遞迴呼叫後,x為關鍵字30的節點,在其子樹中他的秩為2,如此,再進行一次遞迴呼叫,就能找到以關鍵字38的節點為根的子樹中第4-2=2小的元素。他的左子樹大小為1,這意味著他就是第2小的元素。最終,該過程返回乙個指向關鍵字38的節點的指標。

## 確定乙個元素的秩 ##

給定指向順序統計樹t中節點x的指標,過程os-rank返回對t中序遍歷對應的線性序中x的位置。

os-rank(t,x)

int r=x

.left

.size+1

;int y=x

;while(y!=t.root)

y=y.p;}

return r;

偽**解釋

《演算法導論》第14章 資料結構的擴張 2

在上一節中,我們為樹結點新增size域表示每顆子樹的大小,即包含的結點個數,擴張了 二叉查詢樹為其增加順序統計量的查詢功能。更為自然的想法是直接新增順序統計量rank域 到每個樹結點上。這一節我們就來看下在這樣的設計下,如何擴張來完成上一節相同的功能。當我們插入乙個結點到二叉樹中,假設它的順序統計量...

演算法導論筆記 14資料結構的擴張

一 概述 一些工程應用只會使用教科書式的標準資料結構,但是也會有些應用需要對現有的資料結構進行少許的創新和改造,只有很少的情況會創造全新的資料結構。二 動態順序統計 順序統計 n個元素中第i個順序統計量,就是具有第i小關鍵字的元素。對於乙個無序的集合,可以在 o n 的時間內得到任意的順序統計量。利...

《演算法導論》讀書筆記之第14章 資料結構的擴張

前言 通常我們會遇到一些問題,採用一些標準的資料結構,如雙鏈表 雜湊表或二叉查詢數時,不能夠滿足操作要求,需要對這些資料結構進行擴張,新增一些額外的資訊使得能夠完成新的操作。附加的資訊需要對資料結構的某些操作進行調整,這個是非常關鍵的步驟,決定著資料結構擴張是否能夠實現。本章主要討論了紅黑樹結構的擴...