गो चैनलों के लिए लास्ट-इन-फर्स्ट-आउट व्यवहार को लागू करना
गो चैनल स्वाभाविक रूप से एक फीफो (फर्स्ट-इन, फर्स्ट-आउट) का पालन करते हैं ) व्यवहार, जो कुछ परिदृश्यों के लिए उपयुक्त नहीं हो सकता है, जैसे डेप्थ-फर्स्ट सर्च (डीएफएस) एल्गोरिदम लागू करना। इस सीमा को दूर करने के लिए, वैकल्पिक तरीकों का पता लगाना महत्वपूर्ण है। बाहर (LIFO) व्यवहार. जैसा कि उत्तर में सुझाया गया है, एक समाधान स्टैक डेटा संरचना बनाने के लिए कंटेनर/हीप पैकेज का लाभ उठाना है। ]
"कंटेनर/ढेर" आयात करें स्टैक []int टाइप करें फंक (एस स्टैक) लेन() इंट { रिटर्न लेन(एस) } func (s स्टैक) कम(i, j int) बूल { रिटर्न s[i] > s[j] } // LIFO के लिए तुलना को उल्टा करें // स्टैक को इनिशियलाइज़ करें वर स्टैक स्टैक // किसी तत्व को स्टैक पर पुश करें func पुश(x int) { heap.Push(&stack, x) } // स्टैक से एक तत्व पॉप करें func पॉप() पूर्णांक { पुराना := ढेर एल := लेन(पुराना) x := पुराना[l-1] पुराना = पुराना[:l-1] ढेर.इनिट(&स्टैक) मेरे लिए := श्रेणी पुरानी { ढेर.पुश(&स्टैक, पुराना[i]) } वापसी एक्स }एक स्टैक की तरह LIFO डेटा संरचना को लागू करके, आप DFS एल्गोरिदम के लिए वांछित लास्ट-इन, फ़र्स्ट-आउट व्यवहार प्राप्त कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3