資料結構的擴張

2021-06-04 01:55:36 字數 708 閱讀 9792

順序統計樹:

enum nodecolor ;

struct os_node

};static os_node *nil=new os_node(0,black,0);

os_node* os_select(os_node *x,int i)

//尋找x為根順序統計樹中第i小關鍵字的結點指標,o(lgn)

int os_rank(os_node *x,os_node *z)

//給定x為根的順序統計樹中的結點z,返回對x進行中序遍歷後z的位置,即z的秩,o(lgn)

return r;

}int os_key_rank(os_node *x,int k)

//給定樹根x和關鍵字k,返回k的秩,

區間樹:

enum nodecolor ;

class interval//區間

;struct interval_node

};static interval_node *nil=new interval_node(0,0,black);

interval interval_search(interval_node *x,interval i)

//找出以x為根的區間樹中覆蓋區間i的那個結點

return y;

}

第十四章 資料結構的擴張

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

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

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

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

偽 解釋 為明白os select是如何操作的,在上圖所示的順序統計圖上查詢第17小元素的查詢過程。以x為根開始,其關鍵字為26。i 17.因為在26的左子樹大小為12,故他的秩為13,因此,秩為17的節點是26的右子樹第17 13 4小得瑟元素。遞迴呼叫後,x為關鍵字41的節點,i 4,因為41的...