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

电子商务网站设计实践报告网络营销软文范例大全800

电子商务网站设计实践报告,网络营销软文范例大全800,企业邮箱是多少怎么查,国际新闻最新消息2022今天目录 二叉排序树的定义 二叉排序树的查找 二叉排序树的插入 二叉排序树的定义 二叉排序树的定义 二叉排序树(Binary Sort Tree, BST),也称二叉查找树。 二叉排序树或者是一棵空树,或者是一棵具有下列特性的非空二叉…

目录

二叉排序树的定义

二叉排序树的查找

二叉排序树的插入


二叉排序树的定义

二叉排序树的定义
二叉排序树(Binary Sort Tree, BST),也称二叉查找树。
二叉排序树或者是一棵空树,或者是一棵具有下列特性的非空二叉树:
1) 若左子树非空,则左子树上所有结点关键字均小于根结点的关键字值;
2) 若右子树非空,则右子树上所有结点关键字均大于根结点的关键字值;
3) 左、右子树本身也分别是一棵二叉排序树。

由定义可知,二叉排序树是一个递归的数据结构,可以方便的使用递归算法对二叉排序树进行各种运算。
根据二叉树的定义,可得左子树结点值 < 根结点值 < 右子树结点值。
所以,对二叉排序树进行中序遍历,可以得到一个递增的有序序列。

二叉排序结点结构:

typedef struct BiTNode
{int data;struct BiTNode *left, *right;
}BiTNode,*Bitree;

二叉排序树的查找

二叉排序树的查找是从根结点开始的,沿某个分支逐层向下进行比较的过程。
 其查找过程描述如下:若二叉排序树非空,则将给定值与根结点的关键字比较,若相等,则查找成功;若不等,则当根结点的关键字值大于给定关键字值时,在根结点的左子树中查找;否则在根结点的右子树中查找。

递归查找:

Bitree SearchBST(Bitree root, int key){if(root->data == key){return root;}else if(key< root->data){return SearchBST(root->left, key);}else{return SearchBST(root->right, key);}
}

非递归查找

//查找的非递归算法
Bitree SearchBST(Bitree root, int key){Bitree p = root;while(p!=NULL && p->data!=key){if(key< p->data)p = p->left;elsep = p->right;}return p;
}

二叉排序树的插入

//插入的递归算法
Bitree Insert(Bitree root, int x) {if (root == NULL) {root = (Bitree)malloc(sizeof(BiTNode));root->data;root->left = NULL;root->right = NULL;return root;}if (x < root->data) {root->left = Insert(root->left, x);}if (x > root->data) {root->right = Insert(root->right, x);}return root;
}
//插入的非递归算法
void Inser_Node(Bitree &T, int key)
{Bitree parent = NULL;Bitree p = T;Bitree s = (Bitree)malloc(sizeof(BiTNode));s->data = key;s->left = NULL;s->right = NULL;if (T== NULL){T = s;return;}while (p != NULL){parent = p;if (p->data > key)//在左孩子继续查找{p = p->left;}if (p->data < key){p = p->right;}}if (parent->data > key){parent->left = s;}else {parent->right = s;}}

根据书上代码,将查找和插入整合:

/****************书上代码***************************/
int SearchBST(Bitree T,int key, Bitree f, Bitree& p)
{if (!T){p = f;return 0;}else if(T->data==key){p = T;printf("有重复");return 1;}else if (T->data > key){return SearchBST(T->left, key, T, p);}else{return SearchBST(T->right, key, T, p);}
}
void InserBST(Bitree& T, int key)
{Bitree p;if (SearchBST(T, key, NULL, p)==0)//查找失败,进行插入{Bitree s =(Bitree) malloc(sizeof(BiTNode));s->data = key;s->left = NULL;s->right = NULL;if (!p){T = s;}else if (key < p->data){p->left = s;//被插入点作为*s左孩子}else {p->right = s;}}
}

http://www.yayakq.cn/news/76548/

相关文章:

  • 上海做网站公司哪家好创建网站超链接
  • 如何做网站创业Wordpress如何改头像
  • 域名有了怎么制作网站网页设计主要学什么内容
  • 云南省建设网站dede网站安装教程
  • 那个网站做境外自由行便宜网站备案服务内容
  • 菲律宾菠菜网站开发上海建网站手机app
  • 网站建设陆金手指谷哥9中文域名网站 被搜索
  • 网络营销知识网站wordpress加载本地媒体
  • 写男主重生做网站的小说全国网站打开速度
  • 0000网站建设珠海软件开发公司
  • 在阿里云做的网站怎么移动福建巢网站建设
  • 1 建设好自媒体门户网站wordpress 加一个form
  • 吉林学校网站建设深圳SEO网站建设优化
  • 禅城区网站建设公司免费做调查的网站有哪些
  • 网站建设石家庄市劳保手套网站建设
  • 有什么好的手机推荐网站烟台工程建设信息网站
  • 校内网站建设与维护网站开发能用udp协议吗
  • 教做游戏的网站进入兔展网站做PPt
  • 汕头企业网站建设服务泰安小程序开发制作
  • 网站建设咨询中心全网推广服务
  • 1m带宽网站支持多少人同时在线宁德蕉城住房和城乡建设部网站
  • 网站做百度联盟收入已经很低了搜索引擎优化方式
  • 做产品网站淘宝百度网页设计报告需求分析
  • 深圳做网站网络公司有哪些云南网官方网站
  • 潍坊品牌网站建设北京seo教师
  • 设计素材网站知乎做网站哪家公司专业
  • 北京网站策划服务网页翻译快捷键
  • 东莞公司网站做优化做虚假网站犯法吗
  • 厦门制作网站企业建设网站建设费用
  • 网站设计制作公司排名wordpress全站转移