/** * 给出一个二叉树的节点,返回该节点的前驱节点(中序遍历的上一个节点称为前驱节点) * <p> * 1)如果该节点有左子树,那么该节点的前驱节点一定是左子树上最右边的节点; * 2)如果该节点无左子树,那么往上找; * 3)如果该节点是父节点的右子树,那么返回该父节点;如果该节点是父节点的左 ...
分类:
其他好文 时间:
2020-05-24 13:47:28
阅读次数:
50
倍增 $\tt LCA$ "ZJOI2012 灾难" "代码" 建一棵树,一个节点灭绝即子树灭绝。按拓扑序加入节点。如果该节点无前驱,由源点向它连边;否则由其前驱的最近公共祖先向它连边。 ...
分类:
其他好文 时间:
2020-05-23 13:05:44
阅读次数:
53
【1】树的结构特点 非线性结构,有一个直接前驱,但可能有多个直接后继; 树的定义具有递归性,树中还有树; 树可以为空,即节点个数为0; 通过左孩子右兄弟表示法能够将一个非二叉树转化为二叉树。 【2】树的存储 顺序存储 链式存储 ...
分类:
其他好文 时间:
2020-05-23 11:22:50
阅读次数:
47
1.复制额外的空间,然后头插法 2.原地逆置,本质上是将指针反转达到逆置的效果。 假设pre、p和r指向3个相邻的结点,如上图。*pre之前的结点的指针都已经调整完毕,它们的next指针都指向其原前驱结点。 现在令*p结点的next域指向*pre结点,注意到一旦调整指针的指向后,*p的后继结点的链就 ...
分类:
其他好文 时间:
2020-05-09 16:58:43
阅读次数:
47
所谓非线性结构,是指在该类结构中至少存在一个数据元素,它具有两个或者两个以上的直接前驱或直接后驱。树型结构就是一种非常重要且应用广泛的非线性结构。 树的定义: 树是N(N>= 0)个节点的有限集合。它满足如下条件 1.有一个特殊的节点称为根节点(Root) 2.除根结点之外的其余节点可分为m(m>= ...
分类:
其他好文 时间:
2020-05-08 17:54:00
阅读次数:
122
DWA算法是近日工作中常用到的算法,在此分享一下。 DWA算法又名动态窗口法,其原理较为简单,属于局部路径规划算法,常用于局部避障. 简单介绍一下算法流程: 根据车体模型不同,DWA对于预测点的方式有所不同,对于前轮前驱模型,DWA预测方式为对前轮角度和速度的预测. 对于两轮差速模型,DWA预测方式 ...
分类:
编程语言 时间:
2020-05-07 21:27:53
阅读次数:
354
线性表 线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他每个数据元素都有一个前驱和后继。 1. 由n (n =0)个数据特性相同的元素构成的 有限 序列称为线性表。 2. 线性表中元素的个数n定义为线性表的长度,n =0 时称为空表。 一、线性表的基本操作 | 操作 | ...
分类:
其他好文 时间:
2020-05-07 15:35:46
阅读次数:
75
迭代法 思路: 按顺序交换对应两个节点位置,交换前用一个节点充当要交换的节点的前驱,交换节点后更新前驱的位置。 代码: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val ...
分类:
其他好文 时间:
2020-05-06 11:45:10
阅读次数:
60
逻辑上通常可以将数据结构分为(线性结构和非线性结构) 如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是(树) 在长度为n的顺序表的第i个位置上插入一个元素(1≤i≤n+1),元素的移动次数为:n-i+1 在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依 ...
分类:
其他好文 时间:
2020-05-03 11:06:29
阅读次数:
146
详细内容看课本吧 第二章线性表 线性表是一种最简单的线性结构。 基本特征: 线性结构是一个数据元素的有序(次序)集 集合中必存在唯一的一个“第一元素” 集合中必存在唯一的一个“最后元素” 除最后元素在外,均有唯一的后继 除第一元素之外,均有唯一的前驱 在长度为n的线性表中插入一个元素所需移动元素的的 ...
分类:
编程语言 时间:
2020-05-03 10:28:58
阅读次数:
88