poj3481

维护有序序列,根据输入找到优先级最小/最大 的那个结点,输出编号,然后删除该结点。

假设虚拟结点的v值为-INF,保证序列有序的插入。

void highest_priority() {
  //printf ( "cnt=%d
", cnt );
  if ( cnt == 1 ) {
    printf ( "0
" );
    return;
  }
  Node *left, *mid, *right;
  split(ss.root, cnt-1, left, right);
  printf ( "%d
", right->client );
  ss.root = left;
  --cnt;
}
void lowest_priority(){
  if ( cnt == 1 ) {
    printf ( "0
" );
    return;
  }
  Node *left, *mid, *right, *o;
  split(ss.root, 1, left, o);
  split(o, 1, mid, right);
  printf ( "%d
", mid->client );
  ss.root = merge(left, right);
  --cnt;
}
原文地址:https://www.cnblogs.com/Accoral/p/3149262.html