Part4.10データ構造(スタック、キュー、ハッシュ、hip)最小hipバイナリツリー
8054 ワード
最小ヒップ
私が思うコード
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한다.
最小臀部順序
Reference
この問題について(Part4.10データ構造(スタック、キュー、ハッシュ、hip)最小hipバイナリツリー), 我々は、より多くの情報をここで見つけました
https://velog.io/@angel_eugnen/Part4.9자료구조스택큐해쉬힙최소힙이진트리
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
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한다.
最小臀部順序
Reference
この問題について(Part4.10データ構造(スタック、キュー、ハッシュ、hip)最小hipバイナリツリー), 我々は、より多くの情報をここで見つけました https://velog.io/@angel_eugnen/Part4.9자료구조스택큐해쉬힙최소힙이진트리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol