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; }