Algorithm 带4个字段的bst中的左旋转

Algorithm 带4个字段的bst中的左旋转,algorithm,data-structures,tree,binary-search-tree,pseudocode,Algorithm,Data Structures,Tree,Binary Search Tree,Pseudocode,我有一些问题,我尝试了很多来解决它。我理解bst的旋转是如何工作的,但我不能使它符合这种结构 假设二进制搜索树(BST)的对象节点由4个字段描述:key(integer)、leftChild、righchild和parent都是对BST节点的引用。 编写leftRotation(节点p)的代码 这是我的代码: Node temp temp = parent.right// could I do like this ?? parent.rightChild = temp.leftChild tem

我有一些问题,我尝试了很多来解决它。我理解bst的旋转是如何工作的,但我不能使它符合这种结构

假设二进制搜索树(BST)的对象节点由4个字段描述:key(integer)、leftChild、righchild和parent都是对BST节点的引用。 编写leftRotation(节点p)的代码

这是我的代码:

Node temp
temp = parent.right// could I do like this ??
parent.rightChild = temp.leftChild
temp.leftChild= parent
我觉得这是完全错误的,因为我只想在这四个领域工作。 我只需要一个伪代码

谢谢你的帮助!
假设您不知道p是其父项的左子项还是右子项

q = p.right
if p.parent <> nil then
  if p.parent.right = p then
    p.parent.right = q  
  else
    p.parent.left = q  
q.parent = p.parent

q.left.parent = p
p.right = q.left

q.left = p
p.parent = q
q=p右
如果p.parent为零,则
如果p.parent.right=p,则
p、 parent.right=q
其他的
p、 parent.left=q
q、 家长=家长
q、 left.parent=p
p、 右=q.左
q、 左=p
p、 父项=q