if (p->Rtag==link) //ÓÒÁ´ÓòΪָÕ룬ÔòתÓÒÓÚÊ÷£¬¼ÌÐøÓÒÓÚÊ÷ǰÐò±éÀú p=p->rchild; } }
Ë㷨ʱ¼ä¸´ÔÓ¶ÈΪO(n)¡£
7£®ÒÔ¶þ²æÁ´±íΪ´æ´¢½á¹¹£¬Ð´³ö½»»»¸÷½áµã×óÓÒ×ÓÊ÷µÄËã·¨¡£
¡¾½â´ð¡¿Òª½»»»¸÷½áµãµÄ×óÓÒ×ÓÊ÷£¬×î·½±ãµÄ°ì·¨ÊÇÓúóÐò±éÀúËã·¨£¬Ã¿·ÃÎÊÒ»¸ö½áµãʱ°ÑÁ½¿Ã×ÓÊ÷µÄÖ¸Õë½øÐн»»»£¬×îºóÒ»´Î·ÃÎÊÊǽ»»»¸ù½áµãµÄ×ÓÊ÷¡£Ëã·¨ÈçÏ£º
typedef char DataType; //¶¨ÒåDaTaTypeÀàÐÍ typedef struct node { DataType data;
struct node lchild£¬rchild; //×óÓÒº¢×Ó×ÓÊ÷ } BinNode; //½áµãÀàÐÍ typedef BinNode *BinTree; #include
void ChangeBinTee (BinTree *T) //½»»»×ÓÊ÷
{ if(*T) //ÕâÀïÒÔÖ¸ÕëΪ²ÎÊýʹ½»»»ÔÚʵ²ÎµÄ½áµãÉϽøÐÐ {
BinTreetemp; //ºóÐò±éÀú ChangeBinTree(£¦(*T) ->lchild); ChangeBinTree(£¦(*T) ->rchlld); temp= (*T) ->lchild;
(*T) ->lchild= (*T) ->rchild; (*T) ->rchild=temp; } }
void PrintNode (BinTree T) //ÒÔǰÐòÐòÁдòÓ¡½áµãÊý¾Ý { if (T) {
Printf(¡§%C\ PrintNode (T->lchild); PrintNode( T->rchiid); }
16 / 17
}
void main() //²âÊÔ³ÌÐò { BinTree root;
CreatBinTree( &root); //½¨Á¢¶þ²æÁ´±í PrintNode (root); //Êä³öÔ±í printf( \
ChangeBinTree( &root); //½»»»×ÓÊ÷ PrintNode (root); //Êä³öбí printf(\£Ün\ }
17 / 17
Ïà¹ØÍÆ¼ö£º