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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

字典树算法

發(fā)布時(shí)間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字典树算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?這里演示關(guān)于字典樹的插入刪除 查找

字典樹的每個(gè)節(jié)點(diǎn)有26個(gè)子節(jié)點(diǎn)分別對(duì)應(yīng)26個(gè)英文字母 ;每個(gè)節(jié)點(diǎn)還有個(gè)屬性表示該節(jié)點(diǎn)是否為一個(gè)單詞(從根節(jié)點(diǎn)到蓋子節(jié)點(diǎn))

參考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);//函數(shù)聲明 
bool selectstr(char *str);
void delstr(char* str);
int main()
{insertchar("abc");insertchar("ab");delstr("ab");cout<<selectstr("abc");getchar();
}
void insertchar(char* str)
{//獲取根節(jié)點(diǎn)Trie *head = &root;while(*str){int index = *str-'a';//使用NULL檢驗(yàn)是否存在該字符 if(head->next[index]==NULL) //表示不存在該字符head->next[index]=new Trie();//不存在則實(shí)例化該對(duì)象,并返回地址str++; //指針運(yùn)算 檢驗(yàn)下一字符串cout<<*str;   head = head->next[index]; //變?yōu)橄乱还?jié)點(diǎn) }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;
}

  

轉(zhuǎn)載于:https://www.cnblogs.com/Small-Life/p/4007428.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。