字典樹 c語言

2021-09-01 04:53:45 字數 1768 閱讀 1080

(1)trie.h

#ifndef trie_h_

#define trie_h_

typedef struct word_trie_t word_trie_t;

typedef enum bool bool;

enum bool

;struct word_trie_t

;word_trie_t *word_trie_create();

#endif

(2)trie.c

#include "trie.h"

#include #include #include //

/* 字典樹節點 */

//#define trie_node_max 26

typedef struct trie_node_t trie_node_t;

/*字典樹節點結構*/

struct trie_node_t

;/*建立乙個節點*/

trie_node_t* trie_node_create()

/***乙個節點*/

void trie_node_destroy(trie_node_t* node)

////* 字典樹對外介面實現 */

///typedef struct private_word_trie_t private_word_trie_t;

struct private_word_trie_t

;//插入乙個字串

bool insert(private_word_trie_t *this,char *str)

current=current->word[word_pos];

//節點索引值增加

current->count++;

str++;

}//在最後乙個節點標識為乙個字串

current->is_str=true;

return true;

}//查詢節點

bool find_word(private_word_trie_t *this,char *str)

str++;

}return current->is_str;

}//查詢字首數

int find_prefix(private_word_trie_t *this,char *str)

str++;

}return current->count;

}//刪除乙個字串

bool delete(private_word_trie_t *this,char *str)

str++;

}//釋放下面的節點

if(del!=null)

trie_node_destroy(del);

}return true;

}else

}//遞迴**節點

void trie_destroy(trie_node_t *node)

}trie_node_destroy(node);

}//銷毀節點樹

void destroy(private_word_trie_t *this)

//建立字典樹物件

word_trie_t *word_trie_create()

int main()

while(gets(str)&&str[0])

else

}tree->destroy(tree);

return 1;

}

字典樹C語言實現

又稱單詞查詢樹,trie樹,是一種 樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的 字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比 雜湊樹高。include include de...

C語言的字典樹實現

字典樹是什麼東西就不過多於解釋了,反正在查詢上面很好用,它的更好的一層封裝就是ac自動機.c語言的字典樹的實現就是如下 include include include define max 128 define idxerr 1 define invalid 0 define valid 1 def...

用C語言字典實現詞典功能 C語言字典詞典

include include include define maxword 25 define maxmean 50 struct record struct lnode 函式宣告 void add struct lnode list void search struct lnode list v...