top of page

Queue

Maqaalkan waxa aad ku baran doontaa:

1. Waa maxay Queue?

2. Shaqooyinka lagu dul qabto.

3. Sida loo hir galiyo.


Maqaalkan kuma xusi doonno Time Complexity iyo space Complexity mid koodna.



Queue waxa ay ka mid tahay Linear DS ka taas oo raacda hab gaara oo loo yaqaan FIFO(First In First Out) ama LILO(Last In Last Out). Tan oo muujinaysa in ay jirto tartiib la raaco.

Queue waxa la gu samayn karaa shaqooyin dhawr oo aan ku xusi doonno xaggan hoose, code snippets waxa ay ku qoran yihiin Dart Language.

1. Enqueue: oo ah in shay lagu daro xagga dambe queue[rear].


void enqueue(int item) {
    if (isFull()) {
        throw QueueFullException();
    }

    _items[_rear] = item;
    _rear = (_rear + 1) % _items.length;

    _count++;
}

2. Dequeue: oo ah in shay laga saaro/tuuro xagga hore ee queue[front].


int dequeue() {
    if (isEmpty()) {
        throw QueueEmptyException();
    }

    var item = _items[_front];
    _items[_front] = 0;
    _front = (_front + 1) % _items.length;
    _count--;

    return item;
}

  1. Peek: oo ah in la ogaado shayga ugu horreeye ee fursadda kuyuuga u leh.


int peek() {
    if (isEmpty()) {
        throw QueueEmptyException();
    }

    return _items[_front];
}

Waxa jira shaqo caawiyayaal kuwaas oo loo adeegsado queue-da waana sida hoose ku xusan; code snappits halkan ku qoran markale waxa aynu adeegsan Dart. Qaabkan kan ay u qoran yihiinnna waxa loo yaqaan "Arrow function or Fat Arrow function".


1. isFull: oo ah in la hubiyo in queue-du buuxdo iyo in kale. Haddii ay buuxdo waxa uu soo celiyaa run[true]. Haddii kalena been[false]


bool isFull() => _count == _items.length;

2. isEmpty: oo ah in la hubiyo in queue-du madhan tahay iyo in kale. Haddii ay madhan tahay waxa uu soo celiyaa run[true]. Haddii kalena been[false]


bool isEmpty() => _count == 0;

3. Size: oo ah in la ogaado cabbirka queue-da; kolba inta shay ee ku jirta.


int size() => _count;

4. indexOf: ooh in ay raadiso shayga ku jira Queue-da , haddii ay hesho waxa ay soo celisaa godka(index) uu fadhiyo haddii kalena -1.


int indexOf(int item) {
    if (isEmpty()) {
        throw QueueEmptyException();
    }

    for (int index = 0; index < _items.length; index++) {
        if (_items[index] == item) {
            return index;
        }
    }

    return -1;
}

5. Contains: oo ah in ay sheegto shayga loo diray in uu Queue-da ku jiro iyo in kale. Haddii uu ku jiro waxa ay soo celisaa run[True] haddii kalena been[False].


bool contains(int item) => indexOf(item) != -1;

Intan aan sare ku xusay markii laga hadlayo science waxa la yidhaa 'Abstraction Data Type ama ADT' oo ah muuqaalka guud ee algorithm ka halka hirgalintooda loo yaqaan 'Data Structure'.

Haddii aad rabto intan sare ku xusan oo coding iyo hirgalin lagu samaynayo halkan guji si aad u daawato [https://bit.ly/3FuHmcT , xaquusnow muuqaalka waxa aan sameeyey Java.


Haddii aad rabto in aan muuqaal Dart ah sameeyeo comment igula wadaag!.


Noloshada caadiga Kuyuuggu waxa uu ka mid yahay mid aan maalin kasta galno isla jeerkaana waxa adeegga la inoo gu qabtaa sida aan u soo kala horrayno.

Tan meelo badan ayaa looga faa'idaystay marka programmingka la joogo oo ay ka mid tahay 'codsida servers(buli) oo inta badan ugu kale adeegga sida ay codsiyadu u soo kala hor maraan'. Queue-da waxa aad loogu adeegsadaa meelaha 'resource sharing'-ka sida printers haddana sida uu codsiga daabacaddu u ka la horreeyeyo ayuu u soo saaraa!

Halkan waxa aan adeegsan doonnaa Array/List hirgalinteeda; laakiin xor baad u tahay wixii kale eed adeegsan karto sida LinkedList.


Maxaad ka baran kartaa maqaalkan:

1. Code nadiifa oo si fiican u qoran isla jeerkaana aan soo noq noqosho la hayn[Clean coding].

2. Magac bixin fiican oo mid kastaa u jeedkiisu cad yahay isla markaana raaca hab bixinta ee luuqadkasta u gaara [proper naming convention]

3. Code is haysta oo si wanaagsan u xidhiidh u leh[Code Cohesion].


Waxa ii farxad ah in aad ilaa halkan soo gaartay ood dhammaysay maqaalkan. Waxa kale oo dhiiri galin ii ah in aad saaxiibbadaada waxbarashada iyo shaqada la wadaagto. Waxa kale oon kaa codsanayaa in aad Post ku samays adiga oo magacayga ku xusaya!


Codekan oo dhammaystiranna waxa aad ka helaysaa:





Kulankale mahadsanid ♥️

34 views0 comments

Related Posts

See All

Arrays

Stack

bottom of page