poj3481

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

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

void highest_priority() {
  //printf ( "cnt=%d\n", cnt );
  if ( cnt == 1 ) {
    printf ( "0\n" );
    return;
  }
  Node *left, *mid, *right;
  split(ss.root, cnt-1, left, right);
  printf ( "%d\n", right->client );
  ss.root = left;
  --cnt;
}
void lowest_priority(){
  if ( cnt == 1 ) {
    printf ( "0\n" );
    return;
  }
  Node *left, *mid, *right, *o;
  split(ss.root, 1, left, o);
  split(o, 1, mid, right);
  printf ( "%d\n", mid->client );
  ss.root = merge(left, right);
  --cnt;
}

 

posted on 2013-06-22 08:45  Ac_coral  阅读(168)  评论(0编辑  收藏  举报

导航