判断一个单词拼写是否正确
分析:
我们可以用二叉搜索树来解决这个问题,把单词存在一个结点里,这个结点还能保存它的左右孩子指针,左子树里存的是比它小的单词,右子树里存的是比它大的单词。二叉搜索树的概念和基本操作在我的上一篇博客中已经解释清楚了,这是上一篇博客连接:https://mp.csdn.net/mdeditor/82465620
单词都是一个字符串,在比较字符串的大小的时候,有专门的函数:strcmp()
JudgeWord.h
#ifndef __JUDGEWORD_H__
#define __JUDGEWORD_H__#include<string.h>
#include<assert.h>typedef char* KeyType;
typedef struct BSTreeNode
{struct BSTreeNode* _pLeft;struct BSTreeNode* _pRight;KeyType _key;
}BSTKNode;void InitBSTKNode(BSTKNode** pRoot);
void InsertBSTKNode(BSTKNode** pRoot, KeyType key);
BSTKNode* FindBSTKNode(BSTKNode* pRoot, KeyType key);#endif //__JUDGEWORD_H__
JudgeWord.c
#define _CRT_SECURE_NO_WARNINGS 1#include"JudgeWord.h"void InitBSTKNode(BSTKNode** pRoot)
{assert(pRoot);*pRoot = NULL;
}BSTKNode* BuyNode(KeyType key)
{BSTKNode* newNode = NULL;newNode = (BSTKNode*)malloc(sizeof(BSTKNode));if (NULL == newNode){printf("创建结点失败\n");return NULL;}newNode->_key = key;newNode->_pLeft = NULL;newNode->_pRight = NULL;return newNode;
}void InsertBSTKNode(BSTKNode** pRoot, KeyType key)
{assert(pRoot);if (NULL == *pRoot){*pRoot = BuyNode(key);return;}int tmp = 0;tmp = strcmp((*pRoot)->_key, key);if (tmp > 0){return InsertBSTKNode(&(*pRoot)->_pRight, key);}else if (tmp < 0){return InsertBSTKNode(&(*pRoot)->_pLeft, key);}elsereturn;
}BSTKNode* FindBSTKNode(BSTKNode* pRoot, KeyType key)
{if (NULL == pRoot)return NULL;int tmp = strcmp(pRoot->_key, key);if (tmp > 0)return FindBSTKNode(pRoot->_pLeft, key);else if (tmp < 0)return FindBSTKNode(pRoot->_pRight, key);elsereturn pRoot;
}
test.c
#define _CRT_SECURE_NO_WARNINGS 1#include"JudgeWord.h"int main()
{BSTKNode* pRoot;InitBSTKNode(&pRoot);InsertBSTKNode(&pRoot, "hello");InsertBSTKNode(&pRoot, "word");InsertBSTKNode(&pRoot, "child");printf("%s\n", FindBSTKNode(pRoot, "hello")->_key);printf("%s\p", FindBSTKNode(pRoot, "cvu")->_key);return 0;
}
判断一个单词拼写是否正确相关推荐
- 编写一个函数,该函数能判断一个英文句子str(带空格)中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那
题目要求: 编写一个C程序,实现以下功能: 编写一个函数,该函数能判断一个英文句子str(带空格(升级版))中是否含有某个单词w,如"How old are you?"含有&quo ...
- Python写一个简洁拼写检查器
网上看到的一篇神文,利用的是朴素贝叶斯模型实现了一个简单的拼写检查器. 英文原文链接见这里,中文翻译如下 =============================================== ...
- 机器学习:单词拼写纠正器python实现
01 朴素贝叶斯分类实战 前面介绍了贝叶斯的基本理论,朴素贝叶斯分类器,拉普拉斯修正,文章的链接如下: 机器学习:说说贝叶斯分类 朴素贝叶斯分类器:例子解释 朴素贝叶斯分类:拉普拉斯修正 在这3篇推送 ...
- lua中判断一个字符串是否是合法的ip地址格式
项目中使用了lua,需要判断一个字符串是否是正确的ip格式.记录下写出的判断函数.合法返回原ip字符串,不合法返回false --判断ip是否合法 function JudgeIPString(ipS ...
- Java黑皮书课后题第7章:***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来。当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测
***7.35(游戏:猜字词游戏)编写一个猜字词游戏,随机产生一个单词,当用户猜测正确后,正确的字母显示出来.当用户猜出一个单词,显示猜错的次数,并询问用户是否继续猜测 题目 题目描述与运行示例 破题 ...
- 【Java小项目实训】编写一个窗体程序模拟单词拼写
实训要求 窗口中有一个TextFie1d对象和一个按钮对象,将这两个对象添加到一个面板中,然后将该面板添加到窗口的北面.用户在TextField 对象中输入一个英文单词,然后回车或单击按钮,程序将创建 ...
- C#一个完整判断18位身份证号正确函数
C#一个完整判断18位身份证号正确函数 private static bool CheckIDCard18(string CardId){string pattern = @"^\d{17} ...
- asp 不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务
这几天搞ASP. 搞了个网站,一直有Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft ...
- 列表根据下标取值_散列表(上):Word文档中的单词拼写检查功能是如何实现的?...
Word这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在Word里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word的这个单词拼写 ...
最新文章
- linux执行class文件_「大数据干货」Windows系统和Linux系统中打jar包与导入语句剖析...
- linux下文件以及目录权限修改(摘抄)
- Selection change event Issue is fixed handleListItemPress,SingleSelectMaster
- vue ---- 数组的常用方法
- 【图像融合】基于matlab GUI小波变换彩色图像融合(含评价指标)【含Matlab源码 1756期】
- Debian 中使用apt-get update 出现NO_PUBKEY 解决方法
- IPOP下的tcl脚本
- php webm文件头,webm EBML文件头分析
- Galerkin method 热传导公式推导过程
- 踩坑录·CacheCloud无法启动
- word-目录突然无法更新解决方法
- Debian和Ubuntu版本比较
- python pil_Python PIL composite()用法及代码示例
- 如果制作一个好看的Vlog视频,摄影剪辑声音博主推荐
- 诊断2018微商:从乱象到赋能,世界微商大会发明的新玩法为您指路
- HNB资讯里,中烟加热不燃烧有哪些牌子?
- 富爸爸系列2—财务自由之路
- 双连通分量的题目列表(一)
- 新版本读取老版本文件崩溃BUG
- 三星首次公开投资区块链,布局始于三年前