程式開發字典樹相關問題解析

2022-09-23 15:54:12 字數 984 閱讀 7352

字典樹又稱字首樹或者trie樹,一種有序資料結構,用於儲存關聯陣列,鍵通常是字串。

trie的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的開銷以達到提高效率的目的。

它的插入和查詢時間複雜度都為 o(k) ,其中 k 為 key 的長度,與 trie 中儲存了多少個元素無關。;trie 的缺點是空間消耗很高。

構建字典樹的單個節點需要有鍵值,子節點指標必不可少。

struct node;num的值控制在比鍵值的類別數大就可以;

根節點沒有任何鍵值。

對於其他的要求可以適當的在結構體中新增,注意要結合題意和樹形結構的優點。

對樹的操作無非插入和查詢,刪除操作:

插入和查詢都可以沿著樹依次搜尋到目標節點,再操作。

刪除操作可以採用遞迴的形式。

這是乙個字典樹的模板題,我們這個只需要按照步驟來構建樹,再查詢到字首字串的最後乙個節點,就是正確的答案。

#include

using namespace std;

struct node

node(char c):c(c)

} root; //根節點

const int maxn =100000+5;

char str[maxn];

void new_tritree(node* t,int len) //對樹進行插入操作

if(t->next[i]->c ==str[len] ) //存在該節點

}return;

}void print_fun(node* t,int len)

for(int i=0; i<26; i++)

if(str[len]==t->next[i]->c)

}return ;

}int main()

{ int n;

while(scanf("%d",&n)==1)

{for(int i=0; i

程式開發換教室問題解析

程式開發換教室問題解析 爆搜。暴力列舉要換的教室,計算期望值,不斷更新答案。我寫了兩個dfs函式。第乙個用來列舉換的教室,第二個用來算期望值,寫的很醜,望見諒。得分 80分。233 補充一下遞迴實現指數型列舉的模板。這等價於每個整數可以選或不選,所有可能的方案總數共有2n role presenta...

TCP相關問題解析

首先來看看資料報的分片機制。分段特指發生在使用tcp協議的傳輸層中的資料切分行為 分片特指發生在使用ipv4協議的網路ip層中的資料切分行為 ip分片在乙太網上,由於電氣限制,一幀不能超過1518位元組,除去乙太網幀頭14位元組 mac位址等 和幀尾4位元組校驗,還剩1500位元組,這個大小稱為mt...

IntentFilter的相關問題解析

intentfilter是配合intent而生的,你有目標行動或者結果,那麼那些行動和結果就會有他完成的特定要求,這些要求就是intentfilter,可以理解為intent和intentfilter是相對應的。intent字面意思就是目標,目的。通俗一點,需要達成某些目標,則需要提供一些動作,這些...