आमतौर पर हास्केल में डेटा संरचना पुस्तकालय fromList
फ़ंक्शंस को उस सूची में कनवर्ट करने के लिए प्रदान करता है। डेटा। हेप कोई अपवाद नहीं है। लेकिन आप जब इसका इस्तेमाल करने की कोशिश कर कुछ पागल त्रुटियों मिल जाएगा:
Prelude Data.Heap> Data.Heap.fromList [1,2,5,7]
<interactive>:1:0:
Ambiguous type variables `t', `pol' in the constraint:
`HeapItem pol t'
arising from a use of `fromList' at <interactive>:1:0-27
Probable fix: add a type signature that fixes these type variable(s)
....
यह मुख्य यहाँ बिंदु अस्पष्ट प्रकार है। कई प्रकार के ढेर हैं, उदा। मैक्सहेप और मिनहेप, जिसे fromList
पर कॉल करने से अनुमानित नहीं किया जा सकता है। आप ढेर आप किस प्रकार की एक प्रकार हस्ताक्षर साथ प्रयोग कर रहे हैं हास्केल बताने की आवश्यकता:
Prelude Data.Heap> Data.Heap.fromList [1,2,5,7] :: MinHeap Int
fromList [(1,()),(2,()),(5,()),(7,())]
अन्य निर्माताओं जैसे singleton
, fromAscList
, आदि समान रूप से संचालित होते हैं।
एक बार जब आप ढेर का निर्माण कर लेंगे, बाकी आसान हैं, उदा। एक ढेर
Prelude Data.Heap> let heap = Data.Heap.fromList [1,2,5,7] :: MinHeap Int
Prelude Data.Heap> heap
fromList [(1,()),(2,()),(5,()),(7,())]
Prelude Data.Heap> Data.Heap.insert 3 heap
fromList [(1,()),(3,()),(2,()),(5,()),(7,())]
के लिए एक आइटम डालने के लिए ढेर
Prelude Data.Heap> heap
fromList [(1,()),(2,()),(5,()),(7,())]
Prelude Data.Heap> viewHead heap
Just 1
आदि
आपका प्रश्न क्या है के शीर्ष पढ़ने के लिए? क्या आप अब तक अपना कोड प्रदान कर सकते हैं, इसलिए SO उपयोगकर्ता सुधार का सुझाव दे सकते हैं? –