当前位置: 首页 > news >正文

自己做网站 需要会什么6百度在线入口

自己做网站 需要会什么6,百度在线入口,编写wordpress主题,邯郸网站制作哪家强关于二叉搜索树的基本知识点:二叉搜索树的创建,删除,查找 模拟实现一个简单的字典 即将二叉搜索树里数据域改为单词和翻译。查找时与单词比较,若相等,返回它的翻译。若不相等返回单词不存在。 代码: BSW…

关于二叉搜索树的基本知识点:二叉搜索树的创建,删除,查找


  模拟实现一个简单的字典
即将二叉搜索树里数据域改为单词和翻译。查找时与单词比较,若相等,返回它的翻译。若不相等返回单词不存在。
代码:
BSWordTree.h

#define _CRT_SECURE_NO_WARNINGS 1
#include<assert.h>
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>typedef char* key;
typedef char* value;typedef struct BSTree
{struct BSTree *_pleft;struct BSTree *_pright;key  _k;value _v;
}BSWordTree;//初始化
void InitBSWordTree(BSWordTree **BSTree);
//插入
int InsertBSWordTree(BSWordTree **BSTree, key  _k, value _v);
//查找
char *  FindBSWordTree(BSWordTree *BStree, key  _k);
//销毁
void DestroyBSWordTree(BSWordTree **BStree);

BSWordTree.c

#include"BSTword.h"//初始化
void InitBSWordTree(BSWordTree **BSTree)
{assert(BSTree);*BSTree = NULL;}BSWordTree* BuyNode(key  k, value v)
{BSWordTree *newnode = (BSWordTree *)malloc(sizeof(BSWordTree));if (NULL == newnode){//若开辟空间失败,则打印出错误,不进行后面的代码assert(0);return NULL;}newnode->_k = k;newnode->_v = v;newnode->_pleft = NULL;newnode->_pright = NULL;return newnode;
}
非递归插入
//int InsertBSWordTree(BSWordTree **BStree, key  k, value v)
//{
//  BSWordTree *cur = NULL;
//  BSWordTree *parent = NULL;
//
//  assert(BStree);
//  cur = *BStree;
//  //1.若二叉树为空
//  if (NULL == *BStree)    
//  {
//      *BStree = BuyNode(k,v);
//  }
//  //2.若二叉树不为空  
//  else
//  {
//      
//      //①.寻找插入的位置
//      while (cur != NULL)
//      {
//          parent = cur;
//          if (strcmp(cur->_k,k) > 0)
//          {         
//              cur = cur->_pleft;
//          }
//          else if (strcmp(cur->_k, k) < 0)
//          {
//              cur = cur->_pright;
//          }
//          else
//          {
//              return 0;
//          }
//      }
//      //②.建立新结点
//      cur = BuyNode(k, v);
//      //③.data若比双亲大,则插右边,若比双亲小,则插左边
//      if (strcmp(parent->_k, k) > 0)
//      {
//          parent->_pleft = cur;
//      }
//      else
//      {
//          parent->_pright = cur;
//      }
//  }
//  return 1;
//}
//递归插入
int InsertBSWordTree(BSWordTree **BStree, key  k, value v)
{BSWordTree *cur = NULL;BSWordTree *parent = NULL;assert(BStree);if (NULL == *BStree){*BStree = BuyNode(k, v);}if (strcmp((*BStree)->_k, k) > 0){return InsertBSWordTree(&(*BStree)->_pleft, k, v);}else if (strcmp((*BStree)->_k, k) < 0){return InsertBSWordTree(&(*BStree)->_pright, k, v);}else{return 0;}
}非递归查找
//char *  FindBSWordTree(BSWordTree *BStree, key  _k)
//{
//  BSWordTree *cur = BStree;
//  //根节点为空,即二叉树为空,返回0
//  if (BStree == NULL)
//  {
//      return NULL;
//  }
//  while (cur != NULL)
//  {
//      if (strcmp (cur->_k, _k) == 0)
//      {
//          return cur->_v;
//      }
//      else if (strcmp(cur->_k, _k) > 0)
//      {
//          cur = cur->_pleft;
//      }
//      else
//      {
//          cur = cur->_pright;
//      }
//  }
//  //cur==NULL即没有找到元素和data相等,返回null
//  return NULL;
//}
//递归查找
char * FindBSWordTree(BSWordTree *BStree, key  _k)
{BSWordTree *cur = BStree;//根节点为空,即二叉树为空,返回0if (BStree == NULL){return NULL;}if (strcmp(cur->_k, _k) == 0){return cur->_v;}else if (strcmp(cur->_k, _k) > 0){return  FindBSWordTree(BStree->_pleft, _k);}else{return  FindBSWordTree(BStree->_pright, _k);}
}
//销毁二叉树
void DestroyBSWordTree(BSWordTree **BStree)
{assert(BStree);if (*BStree == NULL){return;}DestroyBSWordTree(&(*BStree)->_pleft);DestroyBSWordTree(&(*BStree)->_pright);free(*BStree);*BStree = NULL;
}

测试文件

#include"BSTword.h"void TestBSWordTree()
{BSWordTree *BSTree;char a[10] = { 0 };//初始化   sssInitBSWordTree(&BSTree);InsertBSWordTree(&BSTree,"love","爱");InsertBSWordTree(&BSTree, "hate", "讨厌");InsertBSWordTree(&BSTree, "learn", "学习");InsertBSWordTree(&BSTree, "english", "英语");InsertBSWordTree(&BSTree, "math", "数学");while (1){printf("请输入想要查询的单词:");scanf("%s", &a);if (FindBSWordTree(BSTree, a)){printf("您查询的单词意思为:%s\n", FindBSWordTree(BSTree, a));}else{printf("单词不存在!\n");}}
}
int main()
{TestBSWordTree();system("pause");return 0;
}

运行:
这里写图片描述


判断一个单词的拼写是否正确
即将二叉搜索树里数据域改为单词。查找时与单词比较。
.h

#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<assert.h>
#include<string.h>typedef struct BS
{struct BS* _left;struct BS* _right;char * word;
}BSTree;void InitBSwordTree(BSTree **bs);
int InsertBSwoedTree(BSTree **bs,char *word);
int FindWord(BSTree *bs, char *word);

.c

#include"BSwordTree.h"void InitBSwordTree(BSTree **bs)
{assert(bs);*bs = NULL;
}BSTree *BuyNode(char *word)
{BSTree *node = NULL;node = (BSTree *)malloc(sizeof(BSTree));if (node == NULL){assert(0);return NULL;}node->_left = NULL;node->_right = NULL;node->word = word;return node;
}
//非递归插入
//int InsertBSwoedTree(BSTree **bs,char *word)
//{
//  BSTree *cur = NULL;
//  BSTree *parent = NULL;
//
//  assert(bs);
//  int ret = 0;
//
//  cur = *bs;
//  //二叉树为空时插入
//  if (*bs == NULL)
//  {
//      *bs = BuyNode(word);
//      return 1;
//  }
//  else
//  {
//      while (cur != NULL)
//      {
//          ret = strcmp(word, cur->word);
//          if (ret > 0)
//          {
//              parent = cur;
//              cur = cur->_right;
//          }
//          else if (ret < 0)
//          {
//              parent = cur;
//              cur = cur->_left;
//          }
//          else
//          {
//              return 0;
//          }
//      }
//      //二叉树不为空插入
//      cur = BuyNode(word);
//      if (strcmp(parent->word,word) > 0)
//      {
//          parent->_left = cur;
//      }
//      else
//      {
//          parent->_right = cur;
//      }
//  }   
//  return 1;
//}
//递归插入
int InsertBSwoedTree(BSTree **bs, char *word)
{BSTree *cur = NULL;BSTree *parent = NULL;assert(bs);int ret = 0;if (*bs == NULL){*bs = BuyNode(word);}ret = strcmp(word, (*bs)->word);if (ret > 0){return InsertBSwoedTree(&(*bs)->_right, word);}else  if (ret < 0){return InsertBSwoedTree(&(*bs)->_left, word);}elsereturn 0;
}//非递归查找
//int FindWord(BSTree *bs, char *word)
//{
//  BSTree *cur = bs;
//  int ret = 0;
//  if (bs == NULL)
//  {
//      return 0;
//  }
//  while (cur != NULL)
//  {
//      ret = strcmp(word, cur->word);
//      if (ret == 0)
//      {
//          return 1;
//      }
//      else if (ret > 0)
//      {
//          cur = cur->_right;
//      }
//      else
//      {
//          cur = cur->_left;
//      }
//  }
//  return 0;
//}//递归查找
int FindWord(BSTree *bs, char *word)
{BSTree *cur = bs;int ret = 0;if (bs == NULL){return 0;}ret = strcmp(word, cur->word);if (ret == 0){return 1;}else if (ret > 0){return FindWord(bs->_right, word);}else{return FindWord(bs->_left, word);}
}

测试文件

#include"BSwordTree.h"void Test()
{BSTree* bs;char word[20] = { 0 };InitBSwordTree(&bs);InsertBSwoedTree(&bs, "english");InsertBSwoedTree(&bs, "math");InsertBSwoedTree(&bs, "banana");InsertBSwoedTree(&bs, "apple");InsertBSwoedTree(&bs, "love");InsertBSwoedTree(&bs, "word");while (1){printf("请输入单词:");scanf("%s", word);if (FindWord(bs, word)){printf("单词拼写正确!\n");}else{printf("单词拼写错误!\n");}}}
int main()
{Test();system("pause");return 0;
}

运行:
这里写图片描述

http://www.wooajung.com/news/35291.html

相关文章:

  • 网站怎样优化关键词好十大免费cms建站系统介绍
  • phpstudy做正式网站获客
  • 网站摄影设计西安百度代运营
  • 云南住房建设厅网站制作网页代码大全
  • 做采集网站难不关键词优化步骤简短
  • 深圳建设网站费用明细推广app赚钱的平台
  • 优秀平面设计网站公关
  • 企业展示建设网站营销型公司网站建设
  • 比较好的网页设计网站怎么接广告赚钱
  • 万网域名管理控制台百度竞价是seo还是sem
  • 新乡专业做淘宝网站2023搜索最多的关键词
  • 山西两学一做登录网站百度推广客户端怎么登陆
  • 用KEGG网站做通路富集分析热门关键词
  • 做网站需要的合同温州seo结算
  • 企业网站排名优化价格刷seo排名
  • 专业做制作网站信息发布推广方法
  • 广州 营销型网站建设广点通推广登录入口
  • 个人博客网站制作论文武汉百度百科
  • 百度网站建设基本情况东莞排名优化团队
  • 群晖可不可以做网站用千牛怎么做免费推广引流
  • 济南做网站公司电话优秀企业网站模板
  • 外贸网站推广优化百度引擎
  • 自己做的网站怎么被搜索出来百度指数查询
  • 唐山建设工程造价信息网站长沙seo网络优化
  • 婚礼网站建设网站seo诊断报告
  • 有网站如何做直播长沙网址seo
  • 石家庄 外贸网站建设steam交易链接怎么获取
  • 奢华网站模板宣传网站站点最有效的方式是
  • 如何用小米路由器做网站怎么自己开发网站
  • 做网站好赚钱吗被忽悠去做网销了