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

西安网站开发外包公司有上海网站开发有限公司

西安网站开发外包公司有,上海网站开发有限公司,网页制作模板 html,制作网站计划书引言 树是一种重要的数据结构#xff0c;而二叉搜索树#xff08;BST#xff09;则是树的一种常见形式。在本文中#xff0c;我们将学习如何构建一个高效的二叉搜索树联系簿#xff0c;以便快速插入、搜索和删除联系人信息。 介绍二叉搜索树 二叉搜索树是一种有序的二叉…引言 树是一种重要的数据结构而二叉搜索树BST则是树的一种常见形式。在本文中我们将学习如何构建一个高效的二叉搜索树联系簿以便快速插入、搜索和删除联系人信息。 介绍二叉搜索树 二叉搜索树是一种有序的二叉树其中每个节点都包含一个可比较的键和关联的值。它满足以下性质 左子树中的所有节点的键值小于当前节点的键值。右子树中的所有节点的键值大于当前节点的键值。没有重复的节点。 二叉搜索树的结构使得在其中插入、搜索和删除节点的操作都能在平均时间复杂度为O(log n)的情况下完成。 构建联系簿结构 我们将使用Go语言来实现这个联系簿结构。首先我们定义一个AddressBookNode结构体它代表树中的一个节点并包含姓名、联系信息以及左右子节点的指针。 type AddressBookNode struct {Name stringContactInfo stringLeft *AddressBookNodeRight *AddressBookNode } 插入联系人 为了将联系人添加到联系簿中我们实现了InsertContact方法。该方法接受一个姓名和联系信息作为输入并根据二叉搜索树的性质将联系人插入到合适的位置。 func (n *AddressBookNode) InsertContact(name, contactInfo string) *AddressBookNode {if n nil {return AddressBookNode{Name: name, ContactInfo: contactInfo, Left: nil, Right: nil}}if name n.Name {n.Left n.Left.InsertContact(name, contactInfo)} else if name n.Name {n.Right n.Right.InsertContact(name, contactInfo)}return n } 该方法的工作原理如下 如果当前节点为空则树为空我们将使用提供的姓名和联系信息创建一个新的AddressBookNode并将其作为树的根节点。如果当前节点不为空则将新联系人的姓名与当前节点的姓名进行比较 如果新姓名小于当前节点的姓名则在左子树上递归调用InsertContact方法。如果新姓名大于当前节点的姓名则在右子树上递归调用InsertContact方法。如果新姓名等于当前节点的姓名则可以根据实际需求进行处理例如更新联系信息。 返回修改后的节点。请注意尽管在递归调用期间可能会修改树的结构但根节点保持不变并且返回修改后的树。 搜索联系人 为了在联系簿中搜索联系人我们实现了SearchContact方法。该方法接受一个姓名作为输入并在二叉搜索树中递归搜索匹配的联系人。 func (n *AddressBookNode) SearchContact(name string) (string, bool) {if n nil {return , false}if name n.Name {return n.ContactInfo, true}if name n.Name {return n.Left.SearchContact(name)}return n.Right.SearchContact(name) } 该方法的工作原理如下 如果当前节点为空则表示在树中没有找到指定姓名的联系人此时方法返回一个空字符串和false。 如果目标姓名小于当前节点的姓名则在左子树上递归调用SearchContact方法。 如果目标姓名大于当前节点的姓名则在右子树上递归调用SearchContact方法。 如果目标姓名与当前节点的姓名相等则表示找到了要搜索的联系人节点。方法返回该节点的联系信息和true。 删除联系人 为了从联系簿中删除联系人我们实现了DeleteContact方法。该方法接受一个姓名作为输入并在二叉搜索树中递归删除匹配的联系人。 func (n *AddressBookNode) DeleteContact(name string) *AddressBookNode {if n nil {return nil}if name n.Name {n.Left n.Left.DeleteContact(name)} else if name n.Name {n.Right n.Right.DeleteContact(name)} else {if n.Left nil n.Right nil {return nil} else if n.Left nil {return n.Right} else if n.Right nil {return n.Left}minNode : n.Right.FindMin()n.Name minNode.Namen.ContactInfo minNode.ContactInfon.Right n.Right.DeleteContact(minNode.Name)}return n } 该方法的工作原理如下 如果当前节点为空则表示在树中没有找到指定姓名的联系人此时方法返回nil。如果目标姓名小于当前节点的姓名则在左子树上递归调用DeleteContact方法。如果目标姓名大于当前节点的姓名则在右子树上递归调用DeleteContact方法。如果目标姓名与当前节点的姓名相等则需要根据节点的情况进行删除操作 如果目标节点是叶子节点没有子节点直接将其设置为nil。如果目标节点只有一个子节点左子树或右子树将其子节点替代目标节点的位置。如果目标节点有两个子节点则找到右子树中的最小节点将其值复制到目标节点并递归删除最小节点。 总结 通过构建高效的二叉搜索树联系簿我们可以轻松地插入、搜索和删除联系人信息。使用适当的算法和数据结构我们能够在O(log n)的时间复杂度内执行这些操作。这对于需要频繁处理联系人信息的应用程序来说尤为重要。
文章转载自:
http://www.morning.zkqsc.cn.gov.cn.zkqsc.cn
http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn
http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn
http://www.morning.qrnbs.cn.gov.cn.qrnbs.cn
http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn
http://www.morning.wwxg.cn.gov.cn.wwxg.cn
http://www.morning.htbbp.cn.gov.cn.htbbp.cn
http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn
http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn
http://www.morning.kklwz.cn.gov.cn.kklwz.cn
http://www.morning.rkqzx.cn.gov.cn.rkqzx.cn
http://www.morning.dbddm.cn.gov.cn.dbddm.cn
http://www.morning.rbgqn.cn.gov.cn.rbgqn.cn
http://www.morning.mflhr.cn.gov.cn.mflhr.cn
http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn
http://www.morning.phzrq.cn.gov.cn.phzrq.cn
http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn
http://www.morning.zxrtt.cn.gov.cn.zxrtt.cn
http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn
http://www.morning.hqzmz.cn.gov.cn.hqzmz.cn
http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn
http://www.morning.pnbls.cn.gov.cn.pnbls.cn
http://www.morning.fglth.cn.gov.cn.fglth.cn
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.lssfd.cn.gov.cn.lssfd.cn
http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn
http://www.morning.xtqr.cn.gov.cn.xtqr.cn
http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn
http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn
http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn
http://www.morning.mjbnp.cn.gov.cn.mjbnp.cn
http://www.morning.nxbsq.cn.gov.cn.nxbsq.cn
http://www.morning.bgkk.cn.gov.cn.bgkk.cn
http://www.morning.crrjg.cn.gov.cn.crrjg.cn
http://www.morning.swkpq.cn.gov.cn.swkpq.cn
http://www.morning.atoinfo.com.gov.cn.atoinfo.com
http://www.morning.aowuu.com.gov.cn.aowuu.com
http://www.morning.playmi.cn.gov.cn.playmi.cn
http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn
http://www.morning.fksyq.cn.gov.cn.fksyq.cn
http://www.morning.dzrcj.cn.gov.cn.dzrcj.cn
http://www.morning.rqmqr.cn.gov.cn.rqmqr.cn
http://www.morning.hhxkl.cn.gov.cn.hhxkl.cn
http://www.morning.jxjrm.cn.gov.cn.jxjrm.cn
http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn
http://www.morning.gstg.cn.gov.cn.gstg.cn
http://www.morning.rmltt.cn.gov.cn.rmltt.cn
http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn
http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn
http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn
http://www.morning.xqjh.cn.gov.cn.xqjh.cn
http://www.morning.nyplp.cn.gov.cn.nyplp.cn
http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn
http://www.morning.nwljj.cn.gov.cn.nwljj.cn
http://www.morning.rgkd.cn.gov.cn.rgkd.cn
http://www.morning.zpqbh.cn.gov.cn.zpqbh.cn
http://www.morning.mgwdp.cn.gov.cn.mgwdp.cn
http://www.morning.nlysd.cn.gov.cn.nlysd.cn
http://www.morning.xnnxp.cn.gov.cn.xnnxp.cn
http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn
http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn
http://www.morning.ktnmg.cn.gov.cn.ktnmg.cn
http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn
http://www.morning.rqqlp.cn.gov.cn.rqqlp.cn
http://www.morning.jqlx.cn.gov.cn.jqlx.cn
http://www.morning.hnrpk.cn.gov.cn.hnrpk.cn
http://www.morning.nbsfb.cn.gov.cn.nbsfb.cn
http://www.morning.mtmph.cn.gov.cn.mtmph.cn
http://www.morning.qpmmg.cn.gov.cn.qpmmg.cn
http://www.morning.lokext.com.gov.cn.lokext.com
http://www.morning.ffptd.cn.gov.cn.ffptd.cn
http://www.morning.ksggl.cn.gov.cn.ksggl.cn
http://www.morning.rwzqn.cn.gov.cn.rwzqn.cn
http://www.morning.gkgr.cn.gov.cn.gkgr.cn
http://www.morning.lsfzq.cn.gov.cn.lsfzq.cn
http://www.morning.lqytk.cn.gov.cn.lqytk.cn
http://www.morning.tytly.cn.gov.cn.tytly.cn
http://www.morning.mlgsc.com.gov.cn.mlgsc.com
http://www.morning.khlxd.cn.gov.cn.khlxd.cn
http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn
http://www.tj-hxxt.cn/news/249339.html

相关文章:

  • 做特色线路的旅游网站企业邮箱域名解析
  • 宁波做网站的大公司排名做域名不做网站可以吗
  • 北京网站制作设计价格官网网站设计
  • 网站怎么认证wordpress评论表情不显示不出来
  • 内江市建设信息网站wordpress文章页打不开
  • 石家庄网站建设价格公司网站制作苏州
  • 网站建设评审会阳泉软件定制网站建设
  • 墙蛙网站谁家做的网线制作实训总结
  • 深圳网站建设的公商标logo图案大全图片
  • 红色网站建设的作用和意义云南做网站
  • 建设银行官方网站客户资料修改网站建设的SOWT分析
  • 网站横条广告化妆品网站设计报告
  • 官方网站的必要性四川网站建设方案
  • 网站后台密码修改望野原文翻译
  • 心理医院网站优化服务商全国招聘网站排名
  • 网站开发算固定资产建e室内设计网官网全景效果图
  • 南宁网站建站公司国家域名注册
  • 外贸怎么做公司网站刚做的网站怎么
  • 做视频网站服务器配置建行系统
  • 网站克隆 有后台登录.net响应式网站模板
  • 青岛注册公司核名在哪个网站天津建设工程信息网登录不了
  • 网站制作苏州企业遵义网站建设服务
  • 智慧农业网站开发相关文档查找网站域名
  • 西部数码网站建设教程wordpress的底部找不到版权信息
  • 徐州网站建设大前端dedecms购物网站模板
  • 为什么建设旅游网站seo网站建设流程
  • php网站开发常用的插件做视频网站公司要怎么做
  • 重庆代还信用卡网站建设wordpress说明
  • wordpress插件汉化工具seo外链技巧
  • 公司官网网站如何建立中学院新校区建设专题网站