日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

字典树算法

發布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字典树算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?這里演示關于字典樹的插入刪除 查找

字典樹的每個節點有26個子節點分別對應26個英文字母 ;每個節點還有個屬性表示該節點是否為一個單詞(從根節點到蓋子節點)

參考http://www.cnblogs.com/archimedes/p/trie-tree.html

?

#include<iostream>
using namespace std;
struct Trie
{Trie *next[26];bool isword;
}root;
void insertchar(char* str);//函數聲明 
bool selectstr(char *str);
void delstr(char* str);
int main()
{insertchar("abc");insertchar("ab");delstr("ab");cout<<selectstr("abc");getchar();
}
void insertchar(char* str)
{//獲取根節點Trie *head = &root;while(*str){int index = *str-'a';//使用NULL檢驗是否存在該字符 if(head->next[index]==NULL) //表示不存在該字符head->next[index]=new Trie();//不存在則實例化該對象,并返回地址str++; //指針運算 檢驗下一字符串cout<<*str;   head = head->next[index]; //變為下一節點 }head->isword=true; 
}
bool selectstr(char *str)
{Trie *head =&root;while(*str){int index=*str-'a';if(head->next[index]==NULL)return false;str++;head=head->next[index];}if(head->isword)return true;elsereturn false;
} 
void delstr(char* str)
{Trie* head=&root;while(*str){int index=*str-'a';if(head->next[index]==NULL)return;str++;head=head->next[index];}if(head->isword)head->isword=false;
}

  

轉載于:https://www.cnblogs.com/Small-Life/p/4007428.html

總結

以上是生活随笔為你收集整理的字典树算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。