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

东莞东城做网站公司百度新闻头条

东莞东城做网站公司,百度新闻头条,wordpress手机版侧栏导航栏,门户网站建设提案文章目录 1. 引言2. 二叉查找树3. 实验内容3.1 实验题目#xff08;一#xff09;输入要求#xff08;二#xff09;输出要求 3.2 算法实现1. 数据结构2. 全局变量3. 中序遍历函数InOrder4. 二叉查找树的构建函数T5. 主函数 3.3 代码整合 4. 实验结果 1. 引言 二叉查找树一输入要求二输出要求 3.2 算法实现1. 数据结构2. 全局变量3. 中序遍历函数InOrder4. 二叉查找树的构建函数T5. 主函数 3.3 代码整合 4. 实验结果 1. 引言 二叉查找树Binary Search TreeBST是一种常用的数据结构它在计算机科学和信息处理中有着广泛的应用。BST的特点是对于树中的每个节点其左子树的所有节点值小于当前节点的值而右子树的所有节点值大于当前节点的值。 本实验将通过C语言构建一个二叉查找树分析其性能计算平均查找长度。 2. 二叉查找树 二叉查找树Binary Search TreeBST是一种二叉树其中每个节点都包含一个键值key和对应的数据value。而且对于任意节点其左子树中的所有节点的键值都小于该节点的键值而右子树中的所有节点的键值都大于该节点的键值。   二叉查找树的这种特性使得在查找、插入和删除节点时具有高效性。通过比较目标键值和当前节点的键值可以在树中快速定位到目标节点或确定插入、删除的位置。在平均情况下这些操作的时间复杂度为O(log n)其中n是二叉查找树中节点的数量。   除了高效的查找操作二叉查找树还支持有序性操作。通过中序遍历二叉查找树可以按照键值的顺序输出树中的所有节点从而实现对节点的有序访问。   需要注意的是如果二叉查找树的节点插入和删除不平衡即树的高度不均衡地增长可能会导致查找、插入和删除操作的最坏情况时间复杂度为O(n)其中n是树中节点的数量。为了解决这个问题可以使用自平衡的二叉查找树如红黑树Red-Black Tree或AVL树来保持树的平衡性。 3. 实验内容 3.1 实验题目 实现教材 287 页底部的算法 T,从无到有创建一棵二叉查找树输出中根遍历序列并编程计算查找成功时的平均查找长度。 一输入要求 char *A[30]{THE,OF,AND,TO,A,IN,THAT,IS,WAS,HE,FOR,IT,WITH,AS,HIS,ON,BE,AT,BY,I,THIS,HAD,NOT,ARE,BUT,FROM,OR,HAVE,AN,THEY,};二输出要求 输出该二叉查找树的中根遍历序列输出该二叉查找树查找成功时的平均查找长度。 3.2 算法实现 1. 数据结构 typedef struct P {char *key;struct P* llink;struct P* rlink; } P;2. 全局变量 P *root; int Sum 0;3. 中序遍历函数InOrder void InOrder(P *t) {if(tNULL) return;else{InOrder(t-llink);printf(%s\n,t-key);InOrder(t-rlink);} }递归地进行中序遍历输出节点的关键词。 4. 二叉查找树的构建函数T P* T(char *ch) {if (root NULL) {root (P*)malloc(sizeof(P));root-key strdup(ch);root-llink NULL;root-rlink NULL;return NULL;}P* p root;while (p ! NULL) {Sum;if (strcmp(ch, p-key) 0)return p;if (strcmp(ch, p-key) 0) {if (p-llink NULL)break;elsep p-llink;}else {if (p-rlink NULL)break;elsep p-rlink;}}P* q (P*)malloc(sizeof(P));q-key strdup(ch);q-llink NULL;q-rlink NULL;if (strcmp(ch, p-key) 0)p-llink q;elsep-rlink q;return NULL; } 若树为空直接创建根节点。若树不为空根据二叉查找树的性质找到合适的位置插入新的节点。 5. 主函数 int main() {char *A[30]{THE,OF,AND,TO,A,IN,THAT,IS,WAS,HE,FOR,IT,WITH,AS,HIS,ON,BE,AT,BY,I,THIS,HAD,NOT,ARE,BUT,FROM,OR,HAVE,AN,THEY,};int M 30, i;for (i 0; i M; i) {char *ch;ch A[i];P* s T(ch);}printf(中序遍历:\n);InOrder(root);Sum 0;for (i 0; i M; i) {char *ch;ch A[i];P* s T(ch);}printf(平均查找长度为%f, (float)Sum / M);// 释放节点的关键词内存for (i 0; i M; i) {free(A[i]);}return 0; } 利用关键词数组 A 构建二叉查找树。输出中序遍历结果。再次构建二叉查找树计算平均查找长度并输出。 3.3 代码整合 #includestdio.h #includestring.h #includemalloc.htypedef struct P {char *key;struct P* llink;struct P* rlink; } P;P *root; int Sum 0;void InOrder(P *t) {if (t NULL)return;else {InOrder(t-llink);printf(%s\n, t-key);InOrder(t-rlink);} }P* T(char *ch) {if (root NULL) {root (P*)malloc(sizeof(P));root-key strdup(ch);root-llink NULL;root-rlink NULL;return NULL;}P* p root;while (p ! NULL) {Sum;if (strcmp(ch, p-key) 0)return p;if (strcmp(ch, p-key) 0) {if (p-llink NULL)break;elsep p-llink;}else {if (p-rlink NULL)break;elsep p-rlink;}}P* q (P*)malloc(sizeof(P));q-key strdup(ch);q-llink NULL;q-rlink NULL;if (strcmp(ch, p-key) 0)p-llink q;elsep-rlink q;return NULL; }int main() {char *A[30]{THE,OF,AND,TO,A,IN,THAT,IS,WAS,HE,FOR,IT,WITH,AS,HIS,ON,BE,AT,BY,I,THIS,HAD,NOT,ARE,BUT,FROM,OR,HAVE,AN,THEY,};int M 30, i;for (i 0; i M; i) {char *ch;ch A[i];P* s T(ch);}printf(中序遍历:\n);InOrder(root);Sum 0;for (i 0; i M; i) {char *ch;ch A[i];P* s T(ch);}printf(平均查找长度为%f, (float)Sum / M);// 释放节点的关键词内存for (i 0; i M; i) {free(A[i]);}return 0; } 4. 实验结果 中序遍历: A AN AND ARE AS AT BE BUT BY FOR FROM HAD HAVE HE HIS I IN IS IT NOT OF ON OR THAT THE THEY THIS TO WAS WITH 平均查找长度为5.433333
http://www.zqtcl.cn/news/364521/

相关文章:

  • 北京一家专门做会所的网站基于ssh框架的网站开发流程
  • 可以在自己的电脑上做网站吗陕西商城网站建设
  • 深圳网站建设工作室郴州有什么好玩的地方
  • 用dw做的网站怎么发到网上竹妃怎么在公众号里做网站
  • 杭州网站优化搜索黑龙江公共资源交易网官网
  • 动易网站 首页模板修改平台网站是什么
  • 营销网站更受用户欢迎的原因是英文网站的建设意义
  • 学网站建设基础河北省建设网站的网站首页
  • 铜仁市住房和城乡建设部网站延边有没有做网站的
  • 如何做ppt的模板下载网站移动端网站的优点
  • 网站域名没有实名认证微信平台开发技术
  • 自己用电脑做虚拟机怎么建网站个人网站 icp 代理
  • 嘉兴网站建设999 999中国建设招标网是私人网站吗
  • 网站程序设置主页面零基础学wordpress pdf下载
  • 网站代码优化有哪些专做立体化的网站
  • 单县网站定制培训机构专业
  • 网站防红链接怎么做网站建设中提示页面
  • 网站开发和游戏开发的区别互联网服务平台投诉
  • 杭州定制网站公司出名的设计网站
  • 网站查询访问注册电气工程师考试
  • 北京企业网站推广哪家公司好电商平台代运营
  • 北京快速建站模板信息管理系统网站开发
  • 做网站后台需要写代码吗做网站收多少钱
  • 企业手机网站建设咨询为企业设计一个网站
  • 做网站平台成本珠海自适应网站设计
  • 做网站手机端需要pc端的源代码吗经营网站需要注意什么
  • 域名购买之后怎么做网站做+淘宝客最大的网站是叫什么
  • 在线营销型网站wordpress 怎么添加即时联系窗口
  • 网站加图标网站开发属于无形资产
  • 个人网站开发与设计摘要企业营销策划心得体会