【数据结构】算法9.16 键树-Trie树-查找
来源:互联网 发布:xperia软件修复 初始化 编辑:程序博客网 时间:2024/05/16 13:52
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define MAXKEYLEN 16typedef int Status;typedef int ElemType;typedef enum{LEAF,BRANCH} NodeKind;typedef char Record;typedef struct{ char ch[MAXKEYLEN]; int num;}KeysType;typedef struct TrieNode{ NodeKind kind; union { struct { KeysType K; Record *infoptr;} lf; struct { struct TrieNode *ptr[27];int num;} bh; };}TrieNode , *TrieTree;/*******************************声明部分****************************************/int ord(char ch);Status cmp(KeysType A,KeysType B);Record *SearchTrie(TrieTree T,KeysType k);/*******************************函数部分****************************************/int ord(char ch) { if(isalpha(ch)) return ch-'A'+1; else return 0;}Status cmp(KeysType A,KeysType B){ int i; if(A.num != B.num) return ERROR; for(i = 0;i<A.num;i++) if(A.ch[i] != B.ch[i]) return ERROR; return OK;}Record *SearchTrie(TrieTree T,KeysType k){ TrieTree p; int i; for(p = T , i = 0 ; //对k的每个字符逐个查找 p && p->kind == BRANCH && i<k.num; //*p为分支结点 p = p->bh.ptr[ ord(k.ch[i]) ], ++i); //ord求字符在字母表中的序号 if(p && p->kind == LEAF && cmp(p->lf.K,k)) return p->lf.infoptr; else return NULL;}/*******************************主函数部分**************************************/int main(){ TrieTree T; T = NULL; KeysType k; k.ch[0] = 'C'; k.ch[1] = 'A'; k.ch[2] = 'I'; k.num = 3; printf("%s \n",SearchTrie(T,k)); return 0;}
0 0
- 【数据结构】算法9.16 键树-Trie树-查找
- 数据结构和算法系列 - Trie—单词查找树
- Trie树实现词典查找算法
- 数据结构查找算法之二叉查找树
- Trie字典树、数字查找、键树
- 单词查找树-trie
- 查找树 trie
- 数据结构:TRIE树
- 数据结构:TRIE树
- 数据结构之Trie树
- 数据结构之trie树
- 数据结构之【trie树】
- 数据结构之Trie树
- 数据结构:TRIE树
- 数据结构:TRIE树
- 数据结构之Trie树
- 数据结构之Trie树
- 数据结构之Trie树
- NDK编译libspatialite
- CAT 总结
- Android 使用Charles 进行抓包
- laravel框架实现phpExcel导入导出,首先必须在laravel引入第三方类
- Logback学习
- 【数据结构】算法9.16 键树-Trie树-查找
- C语言公共基础知识(2)
- 道路、桥梁与交通
- 【数据结构】算法9.17-9.18 哈希表-插入&查找
- 如何实现版本控制(判断是否为新版本,显示新特性)
- DRAM的结构之概括(一)
- hdu2087剪花布条[KMP]
- 11.2.2、搭建RESTful API之使用PasteDeploy定制WSGI服务
- 初识document.onkeydown及其兼容性问题