Leetcode Trie Tree实现问题.
这个算法是要实现一个trie tree, 但是我好像遇到了内存分配的问题,主要我是想要c语言实现. 报错信息的话,可以直接跑我那面那段代码,看看有什么问题。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>#define MAX_SIZE 26
struct TrieNode {
struct TrieNode *children[MAX_SIZE]; bool isWord;
};
struct TrieNode* newTrieNode() {
struct TrieNode *node = (struct TrieNode *)malloc(sizeof(struct TrieNode *)); if (node == NULL) exit(1); int i; memset(node->children, 0x0, sizeof(struct TrieNode *)*26); node->isWord = false; return node;
}
void insert(struct TrieNode root, char word) {
int i, length, index; length = strlen(word); if (length <= 0) return; struct TrieNode *current = root; for (i = 0; i < length; i++) { index = word[i] - 'a'; if (current->children[index] == NULL) { current->children[index] = newTrieNode(); } current = current->children[index]; } current->isWord = true;
}
bool search(struct TrieNode root, char word) {
int i, length, index; length = strlen(word); if (length <= 0) return true; struct TrieNode *current = root; for (i = 0; i < length; i++) { index = word[i] - 'a'; current = current->children[index]; if (current == NULL) return false; } return current->isWord;
}
int main() {
struct TrieNode *root = newTrieNode(); insert(root, "hello"); printf("%d\n", search(root, "hello")); free(root); return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
其它没什么问题 ~