2012-04-02 18 views
11

संभव डुप्लिकेट:
When should I use a List vs a LinkedList
What is a great resource for learning about the implementation details of .NET generic collections?सूची <T> एक जुड़ा हुआ सूची है?

System.Collections.Generic.List<T>linked list(नहीं LinkedList<T> वर्ग) का एक प्रकार है?

एक लिंक्ड सूची नोड्स जो एक साथ एक दृश्य प्रतिनिधित्व के एक समूह से मिलकर एक डेटा संरचना है। सबसे सरल रूप में, प्रत्येक नोड एक डाटाम से बना होता है और अनुक्रम में अगले नोड में (दूसरे शब्दों में, एक लिंक) से संदर्भित होता है।

Linear Linked List
एक लिंक्ड सूची जिसका नोड्स दो क्षेत्रों होते हैं: एक पूर्णांक मूल्य और अगले नोड के लिए एक लिंक।
अंतिम नोड सूची के अंत को इंगित करने के लिए उपयोग किए जाने वाले टर्मिनेटर से जुड़ा हुआ है।

wikipedia.org

अगर ऐसा है, लिंक्ड सूची किस तरह का है?

+1

@Adrian Iftode: यह सवाल जब '' सूची चयन करने के लिए 'LinkedList से अधिक' पूछ नहीं है। – BoltClock

+0

@ BoltClock'saUnicorn, हाँ, मुझे इसे एक टिप्पणी के रूप में पोस्ट करना चाहिए –

उत्तर

23

नहीं, List<T> एक सरणी द्वारा समर्थित है - यह अनिवार्य रूप से .NET 1.0 से ArrayList का एक सामान्य संस्करण है। दस्तावेज़ों से:

List<T> कक्षा ArrayList कक्षा का सामान्य समकक्ष है। यह IList<T> जेनेरिक इंटरफेस को एक सरणी का उपयोग करके लागू करता है जिसका आकार आवश्यकतानुसार गतिशील रूप से बढ़ाया जाता है।

ध्यान दें कि किसी सरणी द्वारा समर्थित होने के कारण, इंडेक्सर्स के माध्यम से इसकी पहुंच ओ (1) है जो एक लिंक सूची के लिए ओ (एन) के विपरीत है।

यदि आप एक लिंक्ड सूची चाहते हैं, तो LinkedList<T> का उपयोग करें। ध्यान दें कि यह दोगुनी-लिंक्ड सूची है। मुझे विश्वास नहीं है .नेट ने अकेले-लिंक्ड सूची प्रकार का खुलासा किया है।

+1

क्या आपका मतलब है कि यह स्मृति में सरणी की तरह प्रबंधित है? लेकिन मैं इसमें अनिश्चित अनंत वस्तुओं को कैसे जोड़ सकता हूं? और मैं इससे एक वस्तु हटा सकता हूं? –

+2

@ जॉन इसाया कर्मोना: मेरा मतलब है कि इसमें आंतरिक रूप से एक सरणी चर है। सरणी एक निश्चित आकार है (जैसा कि * सभी * सरणी .NET में हैं) लेकिन जब सूची बढ़ने की आवश्यकता होती है, तो एक नई सरणी बनाई जाती है और मौजूदा तत्वों की प्रतिलिपि बनाई जाती है। इसी प्रकार जब आप किसी आइटम को हटाते हैं, तो यह शेष तत्वों को उनकी नई सही जगह पर कॉपी करता है। –

4

List<T>, एक ... तकनीकी परिप्रेक्ष्य, एक प्रकार की लिंक्ड सूची है।

आप सी # में एक लिंक्ड सूची करना चाहते हैं:

  • तो बिल्ट-इन LinkedList<T> प्रकार (के लिए डबल-लिंक्ड सूचियों) का उपयोग
  • या (अपने खुद के एक कार्यान्वयन बनाने के लिए यदि आप चाहते हैं एक अकेले से जुड़े एक) - here's an example
संबंधित मुद्दे