怎么用文本做网站做网站哪里买空间好

张小明 2026/1/19 20:40:03
怎么用文本做网站,做网站哪里买空间好,seo营销服务,龙岗网站开发文章目录一、什么是二叉搜索树#xff08;BST#xff09;#xff1f;二、BST 的基本操作1. 节点定义2. 查找操作3. 插入操作4. 删除操作三、经典例题分析例题 1#xff1a;验证二叉搜索树#xff08;LeetCode 98#xff09;例题 2#xff1a;二叉搜索树的最近公共祖先BST二、BST 的基本操作1. 节点定义2. 查找操作3. 插入操作4. 删除操作三、经典例题分析例题 1验证二叉搜索树LeetCode 98例题 2二叉搜索树的最近公共祖先LeetCode 235四、C 语言实现注意事项与总结1. 核心要点回顾2. 避坑指南一、什么是二叉搜索树BST核心定义二叉搜索树是一种有序二叉树满足以下性质左子树中所有节点的值 根节点的值右子树中所有节点的值 根节点的值左、右子树也必须是二叉搜索树关键特性中序遍历结果为升序序列查找、插入、删除操作的时间复杂度O (h)h 为树的高度二、BST 的基本操作1. 节点定义C 语言中通过结构体定义树节点需手动管理指针和内存#includestdio.h#includestdlib.h#includestdbool.h// 用于bool类型C99及以上// 二叉搜索树节点结构体typedefstructTreeNode{intval;structTreeNode*left;structTreeNode*right;}TreeNode;// 新建节点封装内存分配TreeNode*createNode(intval){TreeNode*node(TreeNode*)malloc(sizeof(TreeNode));node-valval;node-leftNULL;node-rightNULL;returnnode;}2. 查找操作思路利用 BST 有序性迭代查找避免递归栈开销// 查找指定值的节点返回节点指针未找到返回NULLTreeNode*searchBST(TreeNode*root,intval){TreeNode*currentroot;while(current!NULL){if(valcurrent-val){returncurrent;// 找到目标节点}elseif(valcurrent-val){currentcurrent-left;// 左子树查找}else{currentcurrent-right;// 右子树查找}}returnNULL;// 未找到}3. 插入操作思路递归找到空位置插入需注意指针的地址传递// 插入节点递归实现TreeNode*insertIntoBST(TreeNode*root,intval){// 递归终止空位置插入新节点if(rootNULL){returncreateNode(val);}// 左子树插入if(valroot-val){root-leftinsertIntoBST(root-left,val);}// 右子树插入elseif(valroot-val){root-rightinsertIntoBST(root-right,val);}// 重复值不处理本文默认无重复returnroot;}4. 删除操作思路分 3 种情况处理// 找到以node为根的树的最小节点用于删除操作TreeNode*findMin(TreeNode*node){while(node-left!NULL){nodenode-left;}returnnode;}// 删除指定值的节点TreeNode*deleteNode(TreeNode*root,intkey){if(rootNULL){returnNULL;}// 1. 找到要删除的节点if(keyroot-val){root-leftdeleteNode(root-left,key);}elseif(keyroot-val){root-rightdeleteNode(root-right,key);}// 2. 找到目标节点处理删除逻辑else{// 情况1叶子节点/只有右子树if(root-leftNULL){TreeNode*temproot-right;free(root);// 释放当前节点内存returntemp;}// 情况2只有左子树elseif(root-rightNULL){TreeNode*temproot-left;free(root);// 释放当前节点内存returntemp;}// 情况3有两个子树找右子树最小节点替代TreeNode*minRightfindMin(root-right);root-valminRight-val;// 替换值root-rightdeleteNode(root-right,minRight-val);// 删除替代节点}returnroot;}// 辅助销毁整棵树避免内存泄漏voiddestroyTree(TreeNode*root){if(rootNULL)return;destroyTree(root-left);destroyTree(root-right);free(root);}三、经典例题分析例题 1验证二叉搜索树LeetCode 98boolisValidBST(structTreeNode*root){// 定义栈数组模拟递归栈存储树节点指针长度10000适配大部分测试用例structTreeNode*stack[10000];intstk_top-1;// 栈顶指针初始为-1表示栈空structTreeNode*curroot;// 遍历指针初始指向根节点intmax-2147483648;// 记录中序遍历的前一个节点值初始为int最小值INT_MINintbegin0;// 标记是否是第一个节点处理根节点为INT_MIN的边界情况// 迭代中序遍历核心循环当前节点非空 或 栈非空时继续遍历while(cur!NULL||stk_top0){// 内层循环将当前节点的所有左子节点依次入栈中序遍历先访问左子树while(cur!NULL){stack[stk_top]cur;// 节点入栈栈顶指针上移curcur-left;// 继续遍历左子树}// 出栈访问当前栈顶节点中序遍历的根节点curstack[stk_top--];// 栈顶节点出栈栈顶指针下移// 核心验证当前节点值需严格大于前一个节点值maxif(cur-valmax){// 特殊处理仅当max是初始值INT_MIN且是第一个节点时允许等于避免误判根节点为INT_MIN的情况// 若不是第一个节点 或 max已更新过直接判定为无效BSTif(max!-2147483648||begin!0)returnfalse;begin;// 标记第一个节点已处理}else{maxcur-val;// 更新max为当前节点值作为下一个节点的比较基准}curcur-right;// 遍历右子树中序遍历左→根→右}// 所有节点遍历完成且满足升序判定为有效BSTreturntrue;}例题 2二叉搜索树的最近公共祖先LeetCode 235structTreeNode*lowestCommonAncestor(structTreeNode*root,structTreeNode*p,structTreeNode*q){// 递归终止条件当前节点为空遍历到叶子节点的子节点无LCAif(!root)returnNULL;// 核心判断当前节点值在p和q的值之间包含等于→ 当前节点就是LCA// 两种情况1. p≤root≤q 2. q≤root≤p兼容p/q值大小不确定的情况if((root-valp-valroot-valq-val)||(root-valq-valroot-valp-val))returnroot;// 递归查找左子树的LCAstructTreeNode*leftlowestCommonAncestor(root-left,p,q);// 递归查找右子树的LCAstructTreeNode*rightlowestCommonAncestor(root-right,p,q);// 左子树找到LCA → 返回左子树的结果if(left)returnleft;// 右子树找到LCA → 返回右子树的结果if(right)returnright;// 左右子树均未找到理论上BST中p/q存在时不会走到这一步returnNULL;}四、C 语言实现注意事项与总结1. 核心要点回顾BST 的灵魂中序遍历升序解题核心突破口C 语言特性需手动管理内存malloc/free指针传递是关键时间复杂度理想 O (logn)最坏 O (n)斜树实际需用平衡 BSTAVL / 红黑树优化。2. 避坑指南内存泄漏插入 / 删除节点后必须释放无用节点free销毁树时递归释放所有节点指针空值所有指针操作前必须检查NULL避免段错误边界处理验证 BST 时用long long存储前驱值避免 int 最小值溢出栈溢出递归深度过深时如斜树优先用迭代实现如查找、中序遍历。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

新手做导航网站wordpress 滑动菜单

本文从编译原理的视角,为当前AI工程实践(如Prompt Engineering、Context Engineering、Think Tool)提供坚实的理论根基。AI编程的演进并非凭空而来,而是重演了软件工程历史上对形式化、可验证性和可靠性的追求。ps:最近…

张小明 2026/1/17 17:00:40 网站建设

学做网站卖东西去哪学邯郸网站优化平台

OpenAI正式发布GPT-5.2模型,在44个职业测试中表现比肩人类专家,完成任务速度达专家11倍、成本不足1%。该模型在编程能力(SWE-Bench Pro 55.6%)、长文本理解(256k token近100%准确率)、视觉能力(错误率降50%)和工具调用(98.7%)方面均有显著提升。特别在美…

张小明 2026/1/17 17:00:40 网站建设

哈尔滨网站建设科技公司在招聘网站做销售技巧

语音合成进入“千人千面”时代:GPT-SoVITS带来的变革 在短视频、虚拟主播和AI助手日益普及的今天,一个声音正在悄然改变内容创作的边界——它不是某个明星的声音,也不是专业配音员的演绎,而是一个普通人仅用一分钟录音就能“克隆”…

张小明 2026/1/17 17:00:41 网站建设

做网站接广告赚钱吗优畅wordpress

.NET Core:跨平台应用开发的利器 一、.NET Core 概述 1.1 基本信息 .NET Core 是一个开源框架,由微软发布并由 .NET 社区维护,托管在 GitHub(https://github.com/dotnet/core) 上。它可用于为 Windows、Linux 和 Mac OS 构建跨平台应用程序。你可以从微软官方 .NET Cor…

张小明 2026/1/17 17:00:44 网站建设

官方网站建设计划wordpress如何让外网访问

从资源获取困境到高效下载突破 【免费下载链接】knowledge-grab knowledge-grab 是一个基于 Tauri 和 Vue 3 构建的桌面应用程序,方便用户从 国家中小学智慧教育平台 (basic.smartedu.cn) 下载各类教育资源。 项目地址: https://gitcode.com/gh_mirrors/kn/knowle…

张小明 2026/1/19 20:27:31 网站建设

网站做外链好不好医疗器械网站模板

Windows Cleaner:告别C盘爆满的系统优化神器 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 还在为电脑运行缓慢、C盘空间告急而烦恼吗?Wi…

张小明 2026/1/17 17:00:45 网站建设