范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

数据结构之字典树TrieC语言版本实现

  #include  #include  #include   /**  * 字典树  *  1、根节点(Root)不包含字符,除根节点外的每一个节点都仅包含一个字符;  *	2、从根节点到某一节点路径上所经过的字符连接起来,即为该节点对应的字符串;  *	3、任意节点的所有子节点所包含的字符都不相同;  *  4、关键词的插入和查找过程的时间复杂度均为 O(key_length),  * 	5、空间复杂度 O(ALPHABET_SIZE * key_length * N) ,其中 N 是关键词的数量。 **/ #define ARRAY_SIZE(a) sizeof(a)/sizeof(a[0])  // Alphabet size (# of symbols) #define ALPHABET_SIZE (26)  // Converts key current character into index // use only "a" through "z" and lower case #define CHAR_TO_INDEX(c) ((int)c - (int)"a")  // trie node typedef struct trie_node TrieNode; struct trie_node {     int value;     TrieNode* children[ALPHABET_SIZE]; };  // trie ADT typedef struct trie TRIE; struct trie {     TrieNode* root;     int count; };  // Returns new trie node (initialized to NULLs) TrieNode *getNode(void) {     TrieNode *pNode = NULL;      pNode = (TrieNode *)malloc(sizeof(TrieNode));      if (pNode)     {         int i;          pNode->value = 0;          for (i = 0; i < ALPHABET_SIZE; i++)         {             pNode->children[i] = NULL;         }     }      return pNode; }  // Initializes trie (root is dummy node) void initialize(TRIE *pTrie) {     pTrie->root = getNode();     pTrie->count = 0; }  // If not present, inserts key into trie // If the key is prefix of trie node, just marks leaf node void insert(TRIE *pTrie, char key[]) {     int level;     int length = strlen(key);     int index;     TrieNode *pCrawl;      pTrie->count++;     pCrawl = pTrie->root;      for (level = 0; level < length; level++)     {         index = CHAR_TO_INDEX(key[level]);         if (!pCrawl->children[index])         {             pCrawl->children[index] = getNode();         }          pCrawl = pCrawl->children[index];     }      // mark last node as leaf     pCrawl->value = pTrie->count; }  // Returns non zero, if key presents in trie int search(TRIE *pTrie, const char *key) {     int level;     int length = strlen(key);     int index;     TrieNode *pCrawl;      pCrawl = pTrie->root;      for (level = 0; level < length; level++)     {         index = CHAR_TO_INDEX(key[level]);          if (!pCrawl->children[index])         {             return 0;         }          pCrawl = pCrawl->children[index];     }      return (0 != pCrawl && pCrawl->value); }  // Driver int main() {     // Input keys (use only "a" through "z" and lower case)     char keys[][8] = { "the", "a", "there", "answer", "any", "by", "bye", "their" };      char output[][32] = { "Not present in trie", "Present in trie" };      TRIE trie;     initialize(&trie);      // Construct trie     for (int i = 0; i < ARRAY_SIZE(keys); i++)     {         insert(&trie, keys[i]);     }      // Search for different keys     printf("%s --- %s ", "the", output[search(&trie, "the")]);     printf("%s --- %s ", "these", output[search(&trie, "these")]);     printf("%s --- %s ", "their", output[search(&trie, "their")]);     printf("%s --- %s ", "thaw", output[search(&trie, "thaw")]);      return 0; }
  运行结果

中国需要有一部关于互联网大数据的反垄断法薇娅偷逃税款6。43亿元薇娅偷税漏税不是第一个也不会是最后一个,因为头部带货网红挣钱太容易了,老子天下第一,自然感觉不要太好,法律在资本面前都是儿戏!他们为什么挣钱这么容易呢?因为APP软件不是广告集散地APP软件不是广告集散地(原创)沈宏胜随着网络信息技术的不断发展,如今的网络与人们的生活密切相关,网络方便了人们的生活,也方便了工作,提高了工作效率。人们从先前的论坛到博客,再到微云原生周报2021下半年CNCF开源项目发展总结Cilium1。11发布业界要闻1。2021年年底CNCF开源项目和发展速度概况摘要本文总结了2021年下半年CNCF开源项目的发展速度,其中OpenTelemetry在CNCF中拥有第二大贡献社区(仅次天玑9000处理器跑分曝光,安兔兔超100万,GeekBench单核1273分近日,天玑9000处理器跑分数据正式出炉。数据显示,这款芯片在安兔兔中取得了总分101。7万的成绩,其中CPU得分超过了25万,GPU得分则超过了39万。不仅如此,根据GeekBe中国电科改革加速,一周七家航天产业生态企业无偿划转股份日前,中国电子科技集团有限公司(简称中国电科)旗下7家上市公司先后发布国有股无偿划转提示性公告。12月11日,中国电科旗下上市公司海康威视国睿科技发布公告,分别将2。454。01股12。20午白酒医疗新能源车光伏半导体顺周期证券5G后市的具体分析大家中午好,耐得住情绪!给你小心心佛祖在金融市场中告诉我们人性的弱点贪婪猜疑自私保守等,需要用现世克服弱点,做时间的朋友佛光普照大地于我知顶底!祈祷祈祷祈祷朋友们,中午好现在利用有你见过好看的姓林的手机壁纸是什么样的?谢邀好久没回答问题了走一波自己现做了几张,觉得还可以分享给大家下面是一些其他的常见姓的我觉得也蛮好看原创答案禁止抄袭如需转载请联系我希望大家能够喜欢我的回答顺便给自己打个小广告欢迎能否分享一张你们拍到的最好看最美的夜景照片?2017年游重庆时拍的夜景今年四月拍自梅州客天下看大美潍坊滨海夜景玫瑰手机随拍兰州中山桥夜景,愿与友友分享,一起感受美,领略黄河之滨,绚丽多彩!美国尼亚加拉大瀑布夜景兰州的夜景很美有什么软件可以自动采集阿里巴巴上的商品详情图?固乔电商图片助手,这个工具还不错,固乔电商图片助手可以批量采集宝贝图片视频,然后发布到自己的店铺,做无货源赚差价。1首先打开固乔电商图片助手,先将自动粘贴网址勾选上,这样我们在其他像薇娅一个级别的主播对社会经济的发展是有利还是有弊?弊大于利。她只是站在风口上被阿里的巨量流量推上财富之巅而已,换个角度看,她只是把数万家天猫淘宝京东的平台商家的收益变成了一个人的利益而已。就像实体店利益被电商平台收割一样。对商业没持续加码农研科技,联合国粮农组织浙大携手拼多多发起全球农创客大赛12月9日,由联合国粮农组织和浙江大学联合主办,中国农业农村部对外经济合作中心与拼多多支持的第二届全球农创客大赛决赛结果正式揭晓。与首届大赛相比,本届大赛吸引了更多全球青年农创客团
吃货看过来!女子天天吃这道时令菜,半个月后大出血!眼下又到了春笋上市的时节饭桌上大家总爱加一盘春笋嫩脆的口感令人胃口大好不过对这道美味有些人必须节制不然就可能会闯大祸吃笋半个月后,胃出血晕倒祝女士躺在消化内科病房里后悔不已她因为连华为Mate50系列新机爆料!可能将要搭载高通骁龙4nm处理器就在近日,有关华为Mate50的许多很多消息爆出,有很多消息称华为将采用会采用高通骁龙898处理器和海思麒麟9000两款处理器芯片,华为Mate50系列可能将于明年春季发布。在配置ampampquot我丈夫和我从学校走到结婚礼服,他就是不忠,看我妈怎么处理ampampquot你能否放过我,周海峰说。对于微信上的这句话,我陷入无尽的绝望之中。真正绝望的时候,是不会流泪的,也不会有任何争吵,仿佛一切都已毫无意义。在我的怀里,尚有一个正在吃奶的孩子。她哭了好男子结婚朋友随礼6。66元,却喝了4瓶五粮液,带走2包中华彩礼问题,已经成了现在人们很关心的一个问题,因为流传着一句话人不到,但彩礼一定要到但是彩礼金额的多少,需要根据各地的风俗习惯,来决定。随多随少,都只是一个心意问题,可是,杨先生却遇女孩招聘父亲女孩招聘父亲在某大城市,一到星期六日,为大龄子女发愁的父母亲,就涌向了市中心的一个公园,成了众人皆知的婚姻介绍所。随着人流的增多,也开始有点变味。这不,除了找对象的人,小贩也都挤进母爱信念支撑起玻璃孩子求学之路现在很少有这么感动的故事了那一晚,女儿仅吃了小半碗饭,就放下筷子说妈,我有点不舒服,想躺一会,你吃完先走吧。碗筷等会我来收拾。当时,我并没有太在意,等我收完夜市回来,看到碗筷和剩菜以为只是小感冒,12岁女孩离世!一张纸条让父母泪崩好想你们这本是一个单纯温馨的学者家庭父亲是就任于江苏扬州田家炳中学的数学教师母亲是兢兢业业的白衣天使他们的女儿单歆刚满12岁是一个聪明活泼勤劳善良的女孩儿爱读书乐观向上在班级担任副班长很受Vivo新品再次曝光,X70系列新料,蔡司原厂玻璃镜头加持,真猛此前,Vivo方面已经确认,将于9月9日召开新品的发布会,正式发布大家关注已久的vivo手机X70系列新机,从目前了解到的信息来看,此次的vivoX70系列将采用中杯大杯和超大杯的年度最佳休旅车之2020款梅赛德斯奔驰E级旅行车2020款梅赛德斯奔驰E级旅行车优点豪华的装饰,豪华的驾驶体验,大量的载物空间。缺点理想的选择很昂贵,没有很多人渴望的高座椅位置。结论很难想象一辆汽车像无懈可击的E级旅行车一样豪华女人3小时才满足,男人6分钟就完事了?!对不住,你死了,我却只能哈哈哈哈我被金钱冲昏了脑筋,连夜背着一切人写了篇稿子,投了一个连竞赛姓名都没记住的创造大赛。成果我被通知进半决赛的时分,坐在40度没开空调的小屋里瑟瑟发抖,厉害女人的10个小心计,让他随时把你放心上!爱情有时需求耍一些小手腕儿,才能让他把你时时间刻放在心上。以下10个爱情心计,一定会让你们的联系更甜美!1发送给他浪漫的短信文字有时在两性联系里能发挥意想不到的作用。试着发送给他些