प्रारंभ में लंबाई = 4 और numElements = 0 की एक गतिशील सरणी से शुरू करते हुए, सरणी दिखाएं जब हम अंत में निम्नलिखित संख्या जोड़ते हैं: 5, 19, 4, 6, -1।

मुझे प्राप्त होने वाला चेकपॉइंट (उत्तर) [५, १९, ४, ६, -1, एक्स, एक्स, एक्स] है, जहां एक्स उन प्रविष्टियों को दर्शाता है जिन्हें अनदेखा किया जा सकता है।

मेरे पास 2 मूर्खतापूर्ण प्रश्न हैं:

  1. मैंने सोचा था कि अंत में डालने से यह [X, X, X, 5, 19, 4, 6, -1] बन जाएगा, बजाय इसके कि यह अभी उत्तर में कैसा दिखता है?

  2. मैं शुरू में हालांकि हर बार जब हम सरणी में कुछ जोड़ते हैं, तो सरणी स्वचालित रूप से इसकी लंबाई को दोगुना कर देगी, यही कारण है कि हमारे पास अंत में 3 एक्स है, जिससे कुल समाप्ति लंबाई 4 के प्रारंभिक आकार के बजाय 8 है। क्या यह सही?

0
Steve Franchise 5 नवम्बर 2019, 09:52

1 उत्तर

सबसे बढ़िया उत्तर

यह इस तरह काम करता है।

"अंत में जोड़ना" का अर्थ है सरणी के अंत में जोड़ना। आइए पहले इसे आंतरिक के बारे में चिंता किए बिना करें।

पहले सूची खाली है

[]

फिर आप 5 . डालें

[5]

फिर 19

[5, 19]

फिर 4 फिर 6 फिर -1

[5, 19, 4]
[5, 19, 4, 6]
[5, 19, 4, 6, -1]

अब यह कैसा दिखता है जब हमारे पास एरे हैं जिनकी क्षमता 4 के गुणकों में है। जैसा कि आप कहते हैं, जब वे भरते हैं तो वे आकार में दोगुना हो जाते हैं। तो यह प्रगति है:

X  X  X  X

5  X  X  X

5 19  X  X

5 19  4  X

5 19  4  6

5 19  4  6 -1  X  X  X

पहले 4 तत्वों को सम्मिलित करते समय, 4 का ब्लॉक भर जाता है। 5वां डालने पर, हमारे पास जगह नहीं होती है, इसलिए हमें क्षमता को दोगुना करके 8 करना होगा, फिर 5वें तत्व को पहले उपलब्ध स्लॉट में रखना होगा।

तो हाँ आप क्षमता को दोगुना करने के बारे में सही हैं। लेकिन सरणी तत्व हमेशा शुरुआत से अंत में अप्रयुक्त स्लॉट के साथ भरे जाते हैं। यदि आप अंत में मान डालते हैं, तो आपको उन्हें प्रत्येक प्रविष्टि पर बाईं ओर स्थानांतरित करना होगा, जो बहुत अक्षम होगा।

1
Ray Toal 5 नवम्बर 2019, 10:03