全球旧事资料 分类
赋新值valuei
tAssig
SqBiTreeTpositio
eTElemTypevalue将层、本层序号转为矩阵的序号i
tii
tpow2elevel1eorder2ifvalueNilTi121Nil叶子非空值但双亲为空retur
0elseifvalueNilTi21NilTi22Nil双亲空值但有叶子(不空)
fretur
0Tivalueretur
1若e是T的非根结点则返回它的双亲否则返回"空"TElemTypePare
tSqBiTreeTTElemTypeei
tiifT0Nil空树retur
Nilfori1iMAX_TREE_SIZE1iifTie找到eretur
Ti121retur
Nil没找到e返回e的左孩子。若e无左孩子则返回"空"TElemTypeLeftChildSqBiTreeTTElemTypeei
tiifT0Nil空树retur
Nilfori0iMAX_TREE_SIZE1iifTie找到eretur
Ti21retur
Nil没找到e返回e的右孩子。若e无右孩子则返回"空"TElemTypeRightChildSqBiTreeTTElemTypeei
tiifT0Nil空树retur
Nilfori0iMAX_TREE_SIZE1iifTie找到eretur
Ti22retur
Nil没找到e返回e的左兄弟。若e是T的左孩子或无左兄弟则返回"空"TElemTypeLeftSibli
gSqBiTreeTTElemTypee
fi
tiifT0Nil空树retur
Nilfori1iMAX_TREE_SIZE1iifTiei20找到e且其序号为偶数是右孩子retur
Ti1retur
Nil没找到e返回e的右兄弟。若e是T的右孩子或无右兄弟则返回"空"TElemTypeRightSibli
gSqBiTreeTTElemTypeei
tiifT0Nil空树retur
Nilfori1iMAX_TREE_SIZE1iifTiei2找到e且其序号为奇数是左孩子retur
Ti1retur
Nil没找到e把从q的j结点开始的子树移为从T的i结点开始的子树I
sertChild用到voidMoveSqBiTreeqi
tjSqBiTreeTi
tiifq2j1Nilq的左子树不空Moveq2j1T2i1把q的j结点的左子树移为T的i结点的左子树ifq2j2Nilq的右子树不空Moveq2j2T2i2把q的j结点的右子树移为T的i结点的右子树Tiqj把q的j结点移为T的i结点qjNil把q的j结点置空根据LR为0或1插入c为T中p结点的左或右子树。p结点的原有左或右子树则成为c的右子树i
tI
sertChildSqBiTreeTTElemTypepi
tLRSqBiTreeci
tjki0forj0ji
tpow2BiTreeDepthT1j查找p的序号ifTjpj为p的序号breakk2j1LRk为p的左或右孩子的序号ifTkNilp原来的左或右孩子不空
fMoveTkT2k2把从T的k结点开始的子树移为从k结点的右子树开始的子树MoveciTk把从c的i结点开始的子树移为从T的k结点开始的子树retur
1构造一个空队列Qi
tI
itQueueSqQr
好听全球资料 返回顶部