"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सीएस की मूल बातें पुनः सीखना - कतार का कार्यान्वयन

सीएस की मूल बातें पुनः सीखना - कतार का कार्यान्वयन

2024-11-09 को प्रकाशित
ब्राउज़ करें:218

Relearning basics of CS - Implementing Queue

क्या आप कभी कतार में खड़े हुए हैं, कतार डेटा संरचना भी यही काम करती है। जब आप शायद अपने पसंदीदा स्वयं सेवा रेस्तरां में ऑर्डर देना चाहते हैं तो आप पंक्ति के अंत में खड़े होते हैं और फिर आप कतार में आगे बढ़ते हैं और चले जाते हैं।

CS में कतार डेटा संरचना समान कार्यक्षमता निष्पादित करती है। कतार डेटा संरचना एक फर्स्ट इन फर्स्ट आउट डेटा संरचना है। क्यू डेटा संरचना को दो बुनियादी कार्यों एनक्यू और डेक्यू के साथ बनाया जा सकता है जो मूल रूप से सूची में जोड़ना और सूची से हटाना है।

वास्तविक जीवन के उदाहरण

कंप्यूटर विज्ञान की वास्तविक दुनिया में कतारें निम्नलिखित सॉफ़्टवेयर घटकों की रीढ़ बनती हैं

  • कार्य शेड्यूलिंग
  • घटना से निपटना
  • Async संचार आदि

जबकि कल्पना करने में आसान एक घटक होगा

  1. गाने की प्लेलिस्ट में कतार
  2. नेटवर्क आदि पर भेजे जाने वाले डेटा के क्रम में एक कतार

कार्यान्वयन

package main

import (
    "fmt"
    "errors"
)

type Queue struct{
    Elements []int
    Size int
}

func (q *Queue) Enqueue(value int){
    if q.GetLength() == q.Size { 
        fmt.Println("Overflow") 
        return
    } 
    q.Elements = append(q.Elements, value) 
}

func (q *Queue) Dequeue() int {
    if q.IsEmpty() { 
        fmt.Println("UnderFlow") 
        return 0
    } 
    element := q.Elements[0] 
    if q.GetLength() == 1 { 
        q.Elements = nil 
        return element 
    } 
    q.Elements = q.Elements[1:] 
    return element
}

func (q *Queue) GetLength() int { 
    return len(q.Elements) 
} 

func (q *Queue) IsEmpty() bool { 
    return len(q.Elements) == 0
} 

func (q *Queue) Peek() (int, error) { 
    if q.IsEmpty() { 
        return 0, errors.New("empty queue") 
    } 
    return q.Elements[0], nil 
} 

जटिलता

समय जटिलता - एनक्यू और डीक्यू के लिए ओ(1)
अंतरिक्ष जटिलता - एन्क्यू और डेक्यू के लिए O(1)

संदर्भ

संदर्भ - https://www.geeksforgeeks.org/queue-in-go-भाषा/

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/abinav_athreya_f4b5487056/relearning-basics-of-cs-implementing-queue-54g7?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3