Sunday 15 March 2015

arrays - Circular Queue without wasting an entry or using counter -


क्या एक काउंटर बिना एक array का उपयोग करके एक परिपत्र कतार को लागू करना संभव है कतार में वस्तुओं की संख्या की गणना या सरणी के किसी भी प्रविष्टि को बर्बाद किए बिना?

मुझे क्या लगता है:

यह संभव नहीं है, मान लें कि हमारे पास दो संकेतक हैं सामने और पीछे , कतार के पहले तत्व के लिए पहला अंक,

हम पीछे के संकेतक को दो तरीकों से परिभाषित कर सकते हैं:

1. यह अंतिम तत्व को इंगित करता है जो कतार में डाला गया था, इसलिए अगले प्रविष्टि अगले तत्व के लिए संभव स्थान है जो डाला जाएगा

2. यह उस स्थान को इंगित करता है जहां अगले तत्व है सम्मिलित होने जा रहा है

किसी भी मामले में हम पूर्ण और amp के बीच भेद नहीं कर सकते; खाली कतार यदि हम सरणी के कम से कम एक प्रविष्टि को बर्बाद नहीं करते हैं या यदि हम काउंटर की गिनती नहीं रखते हैं तो डाला गया संख्या - हटाए गए तत्वों की संख्या < P>

आपकी चिंता आमतौर पर परिपत्र कतारों के रूप में पहचाने जाते हैं उद्धरण:

इस भ्रम को हल करने के लिए कई समाधान दिए गए हैं:

  1. हमेशा एक स्लॉट को खोलें।
  2. भरण संख्या दो मामलों में अंतर करने के लिए।
  3. दो मामलों में अंतर करने के लिए एक अतिरिक्त मिररिंग बिट का उपयोग करें।
  4. भरे जाने वाले नंबरों को प्राप्त करने के लिए पढ़ने और लिखने का उपयोग करें।
  5. संख्या 1, 2, और 4 आप अपने प्रश्न में सीधे पता करते हैं। वे सरणी से अलग मात्रा में मेमोरी का उपभोग करते हैं और इंडेक्स / पॉइंटर्स के साथ शुरू / अंत (या फ्रंट / रीयर के रूप में नाम देते हैं) अन्य समाधान भी स्मृति का उपभोग करते हैं।

    # 3 - एक मिररिंग बिट का उपयोग करें

    केवल एक अतिरिक्त बूलीयन या एन्यूम जोड़ता है, अनिवार्यतः isEmpty या isFull । इस दृष्टिकोण का तर्क, तर्क और सबूत है।

    # 5 - अनुपयोगी सूचकांक

    जब कोई ऑपरेशन किया जाता है तब इंडेक्स बढ़ते हैं और कभी भी कम नहीं होता है वे अनिवार्य रूप से प्रत्येक प्रकार के संचालन की संख्या का प्रदर्शन करते हैं। यह है।

    # 6 - रिकॉर्ड पिछले ऑपरेशन

    अनिवार्य रूप से # 3 के समान है, लेकिन विभिन्न शब्दों।

    वैसे भी, ये सभी लिंक विकिपीडिया के लिए हैं लेख। मैं इसकी पुरजोर सलाह देता हूँ। अन्य तरीकों से हो सकता है, लेकिन आपके लेख में उल्लिखित 6 तरीकों में से एक पर सुधार करना कठिन होगा। इन सब में कमियां और फायदे हैं, इसलिए क्रियान्वयन के निपटारे से पहले उपयोग के उपयोग के मामले के बारे में ध्यान से सोचें।

No comments:

Post a Comment