基本資料結構 Trie

2022-05-24 09:15:13 字數 1606 閱讀 9421

trie(字典樹),用於實現字串的快速檢索。其每個節點都含有若干個字元指標。

例如我在字典樹里插入"abc","ac",那麼就會生成乙個這樣醜陋的東西。

好吧是我的圖畫的醜陋

一棵空的trie僅包含乙個根節點,那麼他的指標自然也指向空。

注:因為trie運用在檢索字串,所以此處指標指代字元指標。

對於需要插入的乙個字串s而言,我們令指標p指向根節點。然後依次掃瞄p中的每個字元c

1.若p的c字元指標指向空(即沒有這個節點),則新建乙個節點q,令p的c字元指標指向q,然後令p=q。

2.若指向乙個已存在的節點,直接讓p=q。

當s字元掃瞄完畢時,在當前節點p上標記他是乙個字串的末尾。

對於需要檢索的乙個字串s而言,我們令指標p指向根節點,然後依次掃瞄s中的每個字元c

1.若p的c指標指向空,則s沒有被插入過trie,返回false

2.若指向存在的節點,則p=q

當s掃瞄完畢時,檢查p是否被標記為乙個字元的末尾。如果沒有,就是false。否則為true

int trie[size][26],tot=1

;void insert(char*str)

p=trie[p][ch];

}end[p]=true;}

bool search(char*str)

}return

end[p];

}

當筆者想去整理的時候…

唉。

這道題trie不是正解,但是可以拿到一定分數。

#include#include

using

namespace

std;

const

int size=200100

;int trie[size][26

];bool

end[size];

char

s[size];

inttot;

intans;

intn,m;

bool search(int

pos)

}return

end[p];

}void insert(int pos)

int len=m,p=1

;

for(int k=0;k)

p=trie[p][ch];

}end[p]=true

; ans++;

}int

main()

cout

<

}

50分解法。但由於用到了trie,所以粘了過來。據題解所述,trie最高能拿70分,但抱歉我沒有看懂。

opencv基本資料結構

iplimage 首先介紹重要的成員變數 width和height表示了的尺寸。其次是depth和nchannels,depth是指畫素顏色的取值範圍,nchnannels為影象的通道,可以取1,2,3,4 origin變數定義了影象的原點,有兩個取值,分別是ipl origin bl和ipl or...

Python 基本資料結構

列表是python裡的內建的型別之一,可以新增和刪除其中的元素。如 role sam 33 dean 37 可以列表中包含列表,同一列表中包含不同型別的資料。下面介紹列表的一些通用操作,關於list的其他用法,可以通過help list 檢視。a 2,13,12,41,17,23 a 1 列表從0開...

基本資料結構定義

定義 棧是一種只能在一端進行插入或刪除操作的線性表。表中允許進行插入 刪除操作的一端稱為棧頂。棧頂的當前位置是動態的,棧頂的當前位置由乙個稱為棧頂指標的位置指示器指示。表的另一端稱為棧底。當棧中沒有資料元素時,稱為空棧。棧的插入操作通常稱為進棧或入棧,棧的刪除操作通常稱為退棧或出棧。特點 後進先出 ...