"सपाट" का क्या अर्थ है?


13

अगर मेरे पास एक पेड़ होता, तो सहज रूप से "चपटा" होता

पेड़ में सभी वस्तुओं की एक सूची प्राप्त करें, बाएं से दाएं की ओर?

अगर मेरे पास एक लिंक की गई सूची है, तो सहज रूप से "चपटा" होगा

सभी वस्तुओं की एक सूची प्राप्त करें, जो इस एक से शुरू होती है

उदाहरण के लिए, एक लिंक्ड सूची एक अपवाद से बनी होगी जो इसके आंतरिक अपवाद को एकत्रित करती है। क्या उम्मीद के साथ "flattenInnerException" अपवाद पर एक विधि का नाम देना उचित होगा कि यह अपवादों का एक अनुक्रम लौटाएगा, सबसे बाहरी अपवाद पहले, और आंतरिक-सबसे अपवाद - अंतिम?

जवाबों:


25

अगर मेरे पास सूचियों की सूची होती, तो "चपटा" ऑपरेशन होता , जो क्रम में सभी पत्ती तत्वों की सूची लौटाता , यानी, कुछ ऐसा जो बदलता है:

[[a, b, c], [d, e, f], [g, h i]]

में

[a, b, c, d, e, f, g, h, i]

पेड़ों के लिए, फ्लैटिंग प्राकृतिक ट्रैवर्सल ऑर्डर में सभी पत्तियों की एक सूची तैयार कर रहा है (एनबी: चूंकि केवल पत्तियां परिणाम में हैं, इससे कोई फर्क नहीं पड़ता कि आप इस बारे में पूर्व में, या पोस्ट-ऑर्डर ट्रैवर्सल के बारे में सोचते हैं।)

एक परिणाम के रूप में, एक साधारण सूची के लिए "समतल" ऑपरेशन परिभाषा पहचान परिवर्तन है।

चपटे चरणों, या डिग्री में प्रदर्शन किया जा सकता है। उदाहरण के लिए:

[[[a, b], [c, d]], [[e, f], [g, h]]]

को समतल किया जा सकता है:

[[a, b, c, d], [e, f, g, h]]

और फिर:

 [a, b, c, d, e, f, g, h]

@ डॉनल फेलो: यह पेड़ों के बारे में सवाल के आधे को संबोधित करता है। लिंक की गई सूचियों के बारे में क्या? क्या "फ्लैटन" शब्द के साथ उनके बारे में बात करना सहज है?
ग्रेग

@GregC, शायद आप एक उदाहरण जोड़ना चाहेंगे कि आप एक लिंक की गई सूची को क्या मानते हैं।

एक उदाहरण के साथ प्रश्न को संपादित किया।
ग्रेग

3
@GregC: एक लिंक की गई सूची केवल एक अनुक्रम सार प्रकार का कार्यान्वयन है। (एक सरणी कम से कम एक स्तर पर उस सार प्रकार का कार्यान्वयन भी है, और हाँ महत्वपूर्ण अंतर भी हैं; सार प्रकार पूरी कहानी है।) अधिकांश मेमोरी आवंटन सिस्टम लिंक की गई सूचियों को इस तथ्य के कारण काफी महंगा बनाते हैं कि आप ' मेमोरी आवंटन उपरि प्रति सूची सेल (जो कि ओवरहेड के बारे में अक्सर 8 बाइट्स 32-बिट सिस्टम पर है) का भुगतान कर रहा है, इसलिए मैं उन्हें तब तक उपयोग करने की सलाह नहीं दूंगा जब तक आपको निरंतर-आवेषण और हटाए जाने की आवश्यकता नहीं होती है।
डोनल फेलो

1
@ बरिसदिमेयार हां। यह पहले स्तर के चपटे होने का नतीजा होगा, और दूसरा दो राउंड के बाद होगा ...
डोनाल्ड फेलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.