Implementacia frontu v C – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Implementacia frontu v C – C / C++ – Fórum – Programujte.comImplementacia frontu v C – C / C++ – Fórum – Programujte.com

 

detony0
Duch
6. 3. 2013   #1
-
0
-

Potreboval by som poradiť maam Doplniť do tejto implementácie frontu v C s využitím štruktúry funkciu void QUEUEdestroy(p_QUEUE queue), ktorá vhodne deštruuje front = dealokuje pamäť alokovanú frontom. nejako si s tym neviem dať rady :(
typedef int itemType;

typedef struct QUEUEnode* p_QUEUEnode;
struct QUEUEnode
{
    itemType item;
    p_QUEUEnode next;
};

void QUEUEinit();
void QUEUEdestroy();
int QUEUEisempty();
void QUEUEput(itemType i);
itemType QUEUEget();

#include <stdio.h>
#include <stdlib.h>
#include "queue.h"

p_QUEUEnode head, tail;

p_QUEUEnode NEW(itemType item, p_QUEUEnode next)     
{
    p_QUEUEnode x = malloc(sizeof *x);
    x->item = item; x->next = next;    
    return x;                        
}                                  

void QUEUEinit()
{
    head = NULL;
}

int QUEUEisempty()
{
    return head == NULL;
}

void QUEUEput(itemType item)
{
    if (head == NULL)
    {
        head = (tail = NEW(item, head));
        return;
    }
   
    tail->next = NEW(item, tail->next);
    tail = tail->next;
}

itemType QUEUEget()
{
    itemType item = head->item;
    p_QUEUEnode t = head->next;
    free(head); head = t;
    return item;
}#include <stdio.h>
#include <stdlib.h>
#include "queue.h"

p_QUEUEnode head, tail;

p_QUEUEnode NEW(itemType item, p_QUEUEnode next)     
{
    p_QUEUEnode x = malloc(sizeof *x);
    x->item = item; x->next = next;    
    return x;                        
}                                  

void QUEUEinit()
{
    head = NULL;
}

int QUEUEisempty()
{
    return head == NULL;
}

void QUEUEput(itemType item)
{
    if (head == NULL)
    {
        head = (tail = NEW(item, head));
        return;
    }
   
    tail->next = NEW(item, tail->next);
    tail = tail->next;
}

itemType QUEUEget()
{
    itemType item = head->item;
    p_QUEUEnode t = head->next;
    free(head); head = t;
    return item;
}

#include <stdio.h>
#include "queue.h"

int main (int argc, char *argv[])
{
    QUEUEinit(100);
   
    for (int i=0; i<10; i++)
        QUEUEput(i);
   
    while (!QUEUEisempty())
        printf("Item from queue: %d\n", QUEUEget());
   
    return 0;
}
 

Nahlásit jako SPAM
IP: 193.87.59.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2013   #2
-
0
-

A co na tom presne nechapes? Odebrani prvku ze zacatku mas (a vraceni jeho hodnoty)...  Destroy je vlastne to same - akorat se pokracuje dokud nejsi na konci a nepotrebujes ty hodnoty polozek

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
detony0
Duch
6. 3. 2013   #3
-
0
-

#2 KIIV
neviem ako to presne nakodiť..nemam s tým velmi vela skusenosti ešte..je to pre mňa niečo novee.

Nahlásit jako SPAM
IP: 193.87.59.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2013   #4
-
0
-

#3 detony
Tak popis jak by to mohlo fungovat slovne... tady ti to zkontrolujeme a zacnes to prepisovat do C ...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
detony0
Duch
6. 3. 2013   #5
-
0
-

#4 KIIV
potrebujem Doplniť do je implementácie kde využijem štruktúry a funkciu void QUEUEdestroy(p_QUEUE queue), ktorá vhodne deštruuje front = dealokuje pamäť alokovanú frontom.

Nahlásit jako SPAM
IP: 193.87.59.–
KIIV
~ Moderátor
+43
God of flame
6. 3. 2013   #6
-
0
-

to je jen formalni popis... ted to chce navrh algoritmu .. jak by to mohlo fungovat... neco jako:

Vemu zacatek, schovam si ho do tmp, prepisu zacatek nextem, ...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 31 hostů

Podobná vlákna

Vyprázdnit frontu tiskárny — založil RomanZ

Implementácia CMS — založil Anonymní uživatel

Implementacia AST — založil vitamin

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý