Part4.10データ構造(スタック、キュー、ハッシュ、hip)最小hipバイナリツリー


最小ヒップ


私が思うコード

import sys
sys.stdin = open("input.txt", "rt")
list = []
n = 0
while n!=-1:
    n = int(input())
    list.append(n)
    list.sort()

    if(list[0] == -1):
        break
    elif(list[0] != -1):
        if(list[0] == 0):
            list.pop(0)
            if(len(list) == 1):
                list.pop(0)
            if(len(list) != 1 and list[0] == max(list)):
                break
            else:
                print(list[0])
                list.pop(0)            

バイナリツリー方式



これはプッシュとプッシュの方法です.
import sys
import heapq as hq #힙큐 받는 것!!
sys.stdin = open("input.txt", "rt")

a = []
while True:
    n=int(input())
    if n == -1:
        break
    if n==0:
        if len(a)==0:
            print(-1)
        else:
            print(hq.heappop(a)) # a에서 자료를 하나 끄집어 내고, 그것이 루트 노드 값이다.
    else:
        hq.heappush(a,n) # a라는 리스트에 n값을 push한다.

最小臀部順序