---
title: "kö-implentation"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/119150-kö-implentation"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Prime_66"
published: "2005-01-02T20:37:53.000Z"
updated: "2005-01-10T20:38:53.000Z"
replies: 8
views: 428
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/119150-kö-implentation"
---

# kö-implentation

## #1 — Prime_66, 2005-01-02T20:37Z

Hur gör jag när sista noden från en kö plockas ut..jag vill att kön ska bli tom. head och tail ska sättas till null. När kön skapas sätter jag ju head och tail till null och kön är tom. Men när den sista noden plockas ut måste jag göra något...men vet inte exakt vad och hur?

    //Här plockas noder ur kön
     public WordNode dequeue() {
       //Ordet i noden
       WordNode ord = head;
       if(head.next!=null){
       head = head.next;
       }
       else{
       //??
       }
       return ord;
       
       }    
       
       public boolean isEmpty() {
       if (head==null && tail==null)
           return true;
       else
           return false;
       }
}

Permalänk: https://www.webforum.nu/p/119150

## #2 — spango, 2005-01-03T09:08Z

Om du plockar ut det sista elementet ur en kö är den per definition tom. Om du anser den vara tom om huvud och tail är null, borde du alltså sätta head och tail till null när du plockar ut sista elementet.

Permalänk: https://www.webforum.nu/p/1517756

## #3 — Prime_66, 2005-01-03T12:15Z

Ok. men om jag skriver så här:

public WordNode dequeue() {
       //Ordet i noden
       WordNode ord = head;
       if(head.next!=null){
       head = head.next;
       }
       else{
       head=null;
       tail=null;
       }
       return ord;

Då kommer inte den första noden som jag stoppade in ut överhuvudtaget..tänker jag fel här?

Permalänk: https://www.webforum.nu/p/1517852

## #4 — luna, 2005-01-03T12:28Z

ett alternativ är att du använder en *List* istället:
<http://java.sun.com/j2se/1.3/docs/api/java/util/List.html>

Permalänk: https://www.webforum.nu/p/1517859

## #5 — Phorpher, 2005-01-03T12:33Z

> **luna skrev:**
>
> ett alternativ är att du använder en *List* istället:
> <http://java.sun.com/j2se/1.3/docs/api/java/util/List.html>

Tanken är nog att han ska göra en egen implementation av en kö och inte använda några färdiga listklasser.

Permalänk: https://www.webforum.nu/p/1517861

## #6 — spango, 2005-01-03T12:47Z

> **Prime_66 skrev:**
>
> Då kommer inte den första noden som jag stoppade in ut överhuvudtaget..tänker jag fel här?

Jag skulle gissa att felet ligger i instoppningsfunktionen, i sådana fall. Posta den så kanske vi kan hjälpa. Och förresten, använd &#91;kod&#93;sådana här taggar runt din kod för att få den mer lättläst&#91;/kod&#93; :)

```
Så att det blir såhär, alltså.
```

Permalänk: https://www.webforum.nu/p/1517870

## #7 — Prime_66, 2005-01-03T13:29Z

ja..vad det är är ju en länkad lista som ligger i en kö. Kolla koden:

```
class Queue {
  
    private WordNode head;
    private WordNode tail;
    public Queue() {
        head = null;
        tail = null;

    }
    
    public void writeChain(){
    writeChain(tail);    
    }
    
  private void writeChain(WordNode wordnode){
    if (wordnode!=null){
       writeChain(wordnode.previous); 
       System.out.println(wordnode.info);
   }
}

    
       public void enqueue(WordNode pappa, WordNode nynod) {
       if(isEmpty()){ 
       head = nynod;
       pappa=null;
       //När kön skapas är previous null
       head.previous=pappa;
       }
       else{ 
       tail.next=nynod;
       //Den kommer från head
       nynod.previous=pappa;
       }
       tail = nynod;
       
       }
       public WordNode dequeue() {
       //Ordet i noden
       WordNode ord = head;
       if(head.next!=null){
       head = head.next;
       }
       else{
       head=null;
       tail=null;
       }
       return ord;
       
       }    
       
       public boolean isEmpty() {
       if (head==null && tail==null)
           return true;
       else
           return false;
       }
}{
```

Permalänk: https://www.webforum.nu/p/1517890

## #8 — Prime_66, 2005-01-09T00:19Z

Problemet löst. Som någon sa..problemet låg i insättnigen! varje gång kön blev helt tom sattes faderspekaren till null vilket ledde till att vägen bröts där typ.. :birp

Permalänk: https://www.webforum.nu/p/1523962

## #9 — PeW, 2005-01-10T20:38Z

Ange gärna lämligt svar som lösning då. Blir lättare för andra som söker att hitta en lösning ;)

Permalänk: https://www.webforum.nu/p/1524914

---

Tråden på webben: https://www.webforum.nu/amne/java/119150-kö-implentation
