武汉大学数据结构第八章 查找.pptVIP

  • 5
  • 0
  • 约2.05万字
  • 约 131页
  • 2019-11-27 发布于湖南
  • 举报
综上所述, 在一个平衡二叉排序树上插入一个新结点S时,主要包括以下三步:  (1) 查找应插位置, 同时记录离插入位置最近的可能失衡结点A(A的平衡因子不等于0)。  (2) 插入新结点S, 并修改从A到S路径上各结点的平衡因子。  (3) 根据A、 B的平衡因子, 判断是否失衡以及失衡类型, 并做相应处理。 下面给出完整算法,其中AVLTree为平衡二叉排序树类型, AVLTNode为平衡二叉排序树结点类型,请读者参考前面二叉树类型自己写出。 void ins-AVLtree(AVLTree avlt , KeyType K) /*在平衡二叉排序树中插入元素k, 使之成为一棵新的平衡二叉排序树*/ { S=(AVLTree)malloc(sizeof(AVLTNode));  S-key=K; S-lchild=S-rchild=NULL;  S-bf=0;  if (avlt==NULL) avlt=S;  else  {  /* 首先查找S的插入位置fp, 同时记录距S的插入位置最近且 平衡因子不等于0(等于-1或1)的结点A, A为可能的失衡结点*/

文档评论(0)

1亿VIP精品文档

相关文档