目录前言🌳1.链表中倒数第k个结点🌸1.1思路1.2代码2. 链表的回文结构🪸2.1思路2.2代码3.相交链表🌪️3.1思路3.2代码4.环形链表I🌊🛳️4.1思路4.2代码4--->5过渡:拓展思考🧐💭5.环形链表II🏥🚑5.1思路5.2代码6.随机链表的复制👊🤡6.1思路编辑6.2代码后语🍻前言🌳之前,我们已经将链表部分的知识了解学习的差不多了,那么没有题目来练练手算个什么事⁉️必需给大家安排上,小江优选---保质又保量‼️1.链表中倒数第k个结点🌸链表中倒数第k个结点_牛客题霸_牛客网1.1思路忘记之前的题目的同学,可以看看这篇博客:学习笔记---看完就会的单链表的应用~
文章目录前言创建二叉树展示二叉树销毁二叉树判断是否为完全二叉树计算树的高度计算树的叶子数量计算树的宽度层次遍历前序遍历递归写法非递归写法中序遍历递归写法非递归写法后序遍历递归写法非递归写法输出根节点到所有叶子节点的路径(递归)输出根节点到所有叶子节点的路径(非递归)计算二叉树的公共祖先(lca)递归写法非递归写法验证前言二叉树可以说是树形数据结构中最基础的,且在多种领域都有应用(比如语法树,二值决策树),熟悉其各种操作是必须的。本文通过实现几个基本的函数来实现一个基本的二叉树:#include#include#defineN100usingnamespacestd;typedefstructn
一、实验项目要求1.输入一个表达式(表达式中的数均小于10的正整数),利用二叉树来表示该表达式,创建表达式数,然后利用二叉树的遍历操作求表达式的值。2.输入要求:多组数据,每组数据1行,为一个表达式,表达式以“=”结尾。当输入只有一个“=”时,输入结束。3.输出要求:每组数据输出一行,为表达式的值。4.输入样例:2*(2+5)= 1+2= = 输出样例: 14 3二、理论分析第一,输入表达式,创建一个基于二叉链表表示的表达式树,里面包含树节点定义。定义了树的节点和节点指针。第二,对表达式树进行后序遍历,得到表达式的值。第三,针对算
链表OJ题目一:移除链表元素题目二:反转链表题目三:链表的中间节点题目四:链表中倒数第k个结点题目五:合并两个有序链表题目六:链表分割题目七:链表的回文结构题目八:相交链表题目九:环形链表题目十:环形链表II题目一:移除链表元素OJ方案一:题目解析:代码演示:structListNode{intval;structListNode*next;};structListNode*removeElements(structListNode*head,intval){structListNode*cur=head,*prev=NULL;while(cur){if(cur->val==val){if(c
文章目录前言1.双亲表示法下标规律存储方式2.完全二叉树结论完全二叉树孩子节点的计算完全二叉树父节点的计算一.顺序结构1.理念补充2.堆概念:小根堆大根堆3.堆的实现1.初始化堆辅助函数——交换元素2.建堆——增加数据3.删除数据向下调整删除堆数据4.取堆顶元素4.堆排序向上调整(筛选法建堆)时间复杂度——向上建堆总次数向下调整(筛选法建堆)时间复杂度——向下调整排序思路5.TopK问题总结前言1.双亲表示法由于每个节点都只有一个父节点,所以我们可通过双亲来表示一棵树。具体方式通过数组的形式实现。下标规律根节点的下标为0按照层序从上到下排序每层从左向右递增表示形式:存储方式二维数组数据的列标为
目录1.树与二叉树1.1树的基本概念1.1.1树的定义1.1.2树的常用术语1.2二叉树的概述1.2.1基本概念1.2.2满二叉树定义1.2.3完全二叉树定义1.2.4单分支树的定义1.2.5二叉树的特性1)特性1:i层最多结点数2^i2)特性2:最多结点个数2^h-13)特性3:叶子结点关系n_0=n_2+14)特性4:深度⌊log2n⌋+15)特性5:判断是否1.2.6存储结构1)顺序存储结构2)链式存储结构1.3二叉树的遍历1.3.1概述1.3.2遍历方式【重点】1)层次遍历2)先根(序)遍历DLR3)中根(序)遍历LDR4)后根(序)遍历LRD5)练习1.3.3遍历方式:递归实现【重点
文章目录前置概念(1)什么是平衡二叉树(2)如何判断一棵树是否是平衡二叉树(3)最小不平衡子树一、构造平衡二叉树的基本思想二、一个示例三、平衡二叉树的调整细节(1)LL型(顺时针)举例(2)RR型(逆时针)(3)LR型(先逆时针再顺时针)举例(4)RL型(先顺时针再逆时针)(5)四种调整类型总结四、例题解题过程参考视频:懒猫老师-数据结构-(59)平衡二叉树【互动视频】前置概念(1)什么是平衡二叉树平衡二叉树(BalancedBinaryTree)是一种特殊的二叉查找树,它的目的是保持树的高度尽量平衡,以保证查找、插入、删除等操作的时间复杂度为O(logn)。常见的平衡二叉树算法包括AVL树、
目录235二叉搜索树的最近公共祖先递归 迭代701二叉搜索树中的插入操作递归 迭代450删除二叉搜索树中的节点235二叉搜索树的最近公共祖先p与q有如下三种情况:分别位于最近公共祖先节点的左右子树中一同位于最近公共祖先节点的左或右子树中一个位于中间节点,另一个位于其子树中根据二叉搜索树的有序性,p与q的最近公共祖先一定在[p,q]内,我们最先找到的节点root,能使得q.val递归 classSolution{publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(root.valp.val&&root
时空乱流Problem:ETimeLimit:1500msMemoryLimit:65535KDescription星际飞行员Alice在一次航行中遭遇了时空乱流,时空乱流将导致Alice乘坐的飞船在n个位面之间穿梭。星际宇航局管理员Bob收到了Alice的求救信号,决定在某些位面上设立监测站,当Alice进入某个已经设立监测站的位面后,她会立即被拯救。由于不同位面情况不同,设立监测站的花费也不相同。在第i个位面设立监测站,所需花费为Ci。时空乱流已经被星际宇航局完全勘测,每个位面都有通往某个位面的通道,如果第i个位面没有监测站,Alice会前往第Ai个位面。(若Ai=i则会停留在当前位面)B
*********************************************************************************************************本文作者科大MF22某班Noah懒羊羊同学,为大家提供一个作业思路,请勿直接copy!!!一起进步学习~**********************************************************************************************************目录1.问题的描述1.1基本功能1.2健壮性1.3规范性2.算法的描述2