- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
树的四种分类
Search trees:实例--二叉有哪些信誉好的足球投注网站树
什么是二叉有哪些信誉好的足球投注网站树
二叉有哪些信誉好的足球投注网站树(BinarySearchTree)是一棵有序的二叉树,所以我们也可以称它为二叉排
序树 (不知道二叉树的童鞋,先看看二叉树:传送门)。
具有以下性质的二叉树我们称之为二叉有哪些信誉好的足球投注网站树:若它的左子树不为空,那么左子树上的
所有值均小于它的根节点;若它的右子树不为空,那么右子树上所有值均大于它的根节点。
它的左子树和右子树分别也为二叉有哪些信誉好的足球投注网站树。
2、二叉有哪些信誉好的足球投注网站树的结构
二叉有哪些信誉好的足球投注网站树能够高效的进行一下操作:①插入一个数值②查询是否包含某个数值③删除
某个数值
根据实现的不同,还可以实现其他各种操作,这是一种使用性很高的数据结构。我们来
看一个例子:
这就是二叉有哪些信誉好的足球投注网站树的存储结构,所有的节点,都满足左子树上的比自己小,而右子树上
的所有节点比自己大。二叉有哪些信誉好的足球投注网站树因为其有序性,所以它能够高效的管理数的集合
(1)查询
我们查找是否存在17:
1根节点是7,因为小于17,所以去右子树查找
2走到节点12,还是小于17,所以继续往右子树找
3 走到节点17,此时找到17。
(2)插入
我们使用查找的方式进行插入,以数字6为例,如图所示:
(3)删除
删除操作相对之前的其他两种操作,就略显复杂一些。一般来说我们可以分为三种情
况:
1需要删除的节点没有左儿子,那么就把右儿子提上去
2需要删除的节点的左儿子没有右儿子,那么就把左儿子提上去
3不满足上述的两种情况的话,就把左子树中最大的节点放到要删除的节点上。
3、二叉有哪些信誉好的足球投注网站树的复杂度
无论我们执行哪一个操作,其所花的时间都和树的高度成正比。我们不难得知,二叉搜
索树的平均复杂度为O(log n)。
4、二叉有哪些信誉好的足球投注网站树的实现
通过上述的了解,我们大致已经知道二叉有哪些信誉好的足球投注网站树的工作原理。所以现在我们就来简单的
实现二叉有哪些信誉好的足球投注网站树基本的增删查的功能,代码如下:
[cpp] view plain copy
1. //表示节点的结构体
2. struct node{
3. int val;
4. node *lch, *rch;
5. };
6. //插入整数x
7. node *insert(node *p, int x){
8. if(p NULL){
9. node *newNode new node;
10. newNode-val x;
11. newNode-lch newNode-rch NULL;
12. p newNode;
13. }else{
14. if(x p-val) p-lch insert(p-lch, x);
15. else p-rch insert(p-rch, x);
16. }
17. return p;
18. }
19. //查找整数x
20. bool find(node *p, int x){
21. if(p NULL) return false;
22. else if(p-val x) return true;
23. else if(p-val x) return find(p-lch, x);
24. else return find(p-rch, x);
25. }
26. //删除整数x
27. node *remove(node *p, int x){
28. if(p NULL) return NULL;
29. else if(x p-val) p-lch remove(p-lch, x);
30. else if(x p-val) p-rch remove(p-rch, x);
31. //情况1
32.
文档评论(0)