Forum Dyskusyjne
Zaloguj Rejestracja Szukaj Forum dyskusyjne

Forum dyskusyjne -> Software -> Programowanie :: WWW -> [C++] Implementacja kolejki - Pilne !!
Napisz nowy temat  Odpowiedz do tematu
[C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 14:00 Odpowiedz bez cytowania Odpowiedz z cytatem
caterina
Czytelnik
<tt>Czytelnik</tt>
 
Użytkownik #950
Posty: 4


[ Osobista Galeria ]




Witam !!!
Trafiłam na to forum w poszukiwaniu pomocy. mam nadzieje, że znajdzie się przynajmniej jedna osoba, która mi jej udzieli. Mam do napisana program w c++, a brzmi on tak: "Implementacja kolejki za pomocą listy pojedyńczo wiązanej". Sprawa jest dość pilna, ponieważ mam to zadanie oddać dzisiaj do godziny 24.00, a ja nie mam zielonego pojęcia jak to zrobić. Proszę pomóżcie, jestem w potrzebie. sad.gif

Pozdrawiam
  
Re: [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 17:18 Odpowiedz bez cytowania Odpowiedz z cytatem
Tassadar
Kapitan Heh
 
Użytkownik #3
Posty: 246


[ Osobista Galeria ]




to jest kolejka jednokierunkowa.
c:
#include <stdio.h>
typedef struct el {
  char wartosc;
  struct el * next;
} EL;
EL* start;
EL* koniec;
 
void add(char znak){
  EL* nowy=new EL;
  nowy->wartosc=znak;
  nowy->next=0;
  if(!start)
    start=nowy;
  else
    koniec->next=nowy;
  koniec=nowy;
}

void del(){
  EL temp=*start;
  if(start){
    delete(start);
    start=temp.next;
  }   
}

void wypisz(){
  EL* s=start;
  while(s){
    printf("%c ",s->wartosc);
    s=s->next;
  }
  printf("\n")
}

int main(){
  koniec=start=0;
  printf("Dodajemy...\n");
  add('a');
  add('b');
  add('c');
  add('d');
  add('e');
  wypisz();
  printf("Usuwamy 2 elementy...\n");
  del();
  del();
  wypisz();
  return 0;
}


nie wiem jak ma byc pokazana funkcjonalnosc tej struktury...
  
Re: [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 20:56 Odpowiedz bez cytowania Odpowiedz z cytatem
caterina
Czytelnik
<tt>Czytelnik</tt>
 
Użytkownik #950
Posty: 4


[ Osobista Galeria ]




Dzięki śliczne smile.gif . Jest tylko mały problem - ja mam Dev-C++ i w tym nie chce chodzić, czegoś brakuje, ale ja nie mam pojęcia czego. Jeżeli byś jeszcze to wiedzieł, to bym była bardzo wdzięczna.
  
Re: [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 21:06 Odpowiedz bez cytowania Odpowiedz z cytatem
caterina
Czytelnik
<tt>Czytelnik</tt>
 
Użytkownik #950
Posty: 4


[ Osobista Galeria ]




A co do funkcjonowania, to ja mam wprowadzać dane, a nie mają się pokazywac gotowe. Wymyślają takie durne rzeczy na zaliczenie, że się poprostu płakać chce. sad.gif
  
Re: <caterina> [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 21:45 Odpowiedz bez cytowania Odpowiedz z cytatem
Tirinti
Pro uczestnik
<tt>Pro uczestnik</tt>
 
Użytkownik #28
Posty: 1295


[ Osobista Galeria ]




Możesz napisać co jest źle? To znaczy jakie błędy zgłasza kompilator, ewentualnie jakie błędy są przy uruchomieniu?

Jakiego typu dane masz wprowadzać?

Swoją drogą to to Dev C++ to chyba jest z Linuxa. Jeśli tak to to może byćpoprostu wina badziewności tego systemu. Ja ten kod wkleiłem do Visual C++ i działą.

Co prawda ja bym to w c++ w klasie zaimplementował, ale kod jest prawidłowy i powinien działąć.

Swojądrogą co studiujesz i który to semestr? Bo ja na informatyce na PW na pierwszym semestrze miałęm podobnej klasy trudności tyle że w Pascalu.
  
Re: <Tirinti> [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 22:10 Odpowiedz bez cytowania Odpowiedz z cytatem
Tirinti
Pro uczestnik
<tt>Pro uczestnik</tt>
 
Użytkownik #28
Posty: 1295


[ Osobista Galeria ]




A w Visualu napisałem takie cośi działa.
Typ Value jest tak, żeby tylko sprawdzić czy działa. Należy go sobie podmienić na dowolny typ.

c:

#include <stdio.h>

struct Value
{
        int v;
};

struct Element
{
        Value *val;
        Element *next;
};

class Queue
{
private:
        Element *head,*tail;
        int length;
public:
        Queue();
        ~Queue();
        void Add(Value *v);
        Value* Remove();
        Value* Peek();
        void Del();
        int Length();
};

Queue::Queue()
{
        head=tail=0;
        length=0;
}

Queue::~Queue()
{
        Element *tmp;
        while(head)
        {
                tmp=head;
                head=head->next;
                delete tmp;
        }
        tail=0;
        length=0;
}

void Queue::Add(Value *v)
{
        if(!head)
        {
                head=new Element;
                tail=head;
        }
        else
        {
                tail->next=new Element;
                tail=tail->next;
        }
        tail->val=v;
        tail->next=0;
        length++;
}

Value* Queue::Remove()
{
        if(!head)
                return 0;

        Value *v;
        v=head->val;
        length--;

        Element *tmp;
        if(tail==head)
                tail=0;
        tmp=head;
        head=head->next;
        delete tmp;

        return v;
}

Value* Queue::Peek()
{
        if(!head)
                return 0;
        return head->val;
}

void Queue::Del()
{
        if(!head)
                return;

        Element *tmp;
        if(tail==head)
                tail=0;
        tmp=head;
        head=head->next;

        if(tmp->val)
                delete tmp->val;
        delete head;
        length--;
}

int Queue::Length()
{
        return length;
}

int main()
{
        Queue q;
        Value *v
                ;
        v=new Value;
        v->v=1;
        q.Add(v);

        v=new Value;
        v->v=2;
        q.Add(v);

        v=new Value;
        v->v=3;
        q.Add(v);

        v=new Value;
        v->v=4;
        q.Add(v);

        v=q.Peek();
        if(v)
                printf("%i\n",v->v);
        else
                printf("null\n");

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        v=new Value;
        v->v=9;
        q.Add(v);

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        v=q.Remove();
        if(v)
        {
                printf("%i\n",v->v);
                delete v;
        }
        else
                printf("null\n");

        return 0;
}

  
Re: [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 22:18 Odpowiedz bez cytowania Odpowiedz z cytatem
EDDY
Admin
 
Użytkownik #1
Posty: 1451


[ Osobista Galeria ]




Tirinti @ Niedziela, 16 Maj 2004 21:45 @ :
Swoją drogą to to Dev C++ to chyba jest z Linuxa. Jeśli tak to to może byćpoprostu wina badziewności tego systemu. Ja ten kod wkleiłem do Visual C++ i działą.

Dobry żart. lol.gif Naprawdę nie znasz darmowego kompilatora Bloodshed Dev-C++? To może i DJGPP nie znasz?crazy.gif
  
Re: <EDDY> [C++] Implementacja kolejki - Pilne !!
PostWysłano: Niedziela, 16 Maj 2004, 22:26 Odpowiedz bez cytowania Odpowiedz z cytatem
Tirinti
Pro uczestnik
<tt>Pro uczestnik</tt>
 
Użytkownik #28
Posty: 1295


[ Osobista Galeria ]




Nie znam.
Używam tylko Visual Studio 6 a od niedawna także Visual Studio.Net 2003.

A jak coś jest za darmo to znaczy, że jest nic niewarte. Bo jak by było coś warte to nikt by tego za darmo nie rozdawał. cool.gif
  
Re: <Tirinti> [C++] Implementacja kolejki - Pilne !!
PostWysłano: Poniedziałek, 17 Maj 2004, 00:47 Odpowiedz bez cytowania Odpowiedz z cytatem
michux
Bywalec
<tt>Bywalec</tt>
 
Użytkownik #167
Posty: 22


[ Osobista Galeria ]




A jak coś jest za darmo to znaczy, że jest nic niewarte. Bo jak by było coś warte to nikt by tego za darmo nie rozdawał.

tak, ale tylko zakładając że wszyscy ludzie na ziemi prezentują podobny do Ciebie światopogląd

na całe szczęście to nieprawda i są jeszcze na świecie komuniści ;) produkujący np. system operacyjny Debian, który DLA MNIE jest cholernie wartościowy, a to dlatego że dzięki niemu mam ogromną wygodę pracy i przy okazji ogromną oszczędność gotówki
  
Re: [C++] Implementacja kolejki - Pilne !!
PostWysłano: Piątek, 21 Maj 2004, 15:46 Odpowiedz bez cytowania Odpowiedz z cytatem
Tassadar
Kapitan Heh
 
Użytkownik #3
Posty: 246


[ Osobista Galeria ]




ja to pisalem w dev-c++ wlasnie.. wiec dziwi mnie ze nie dziala

jesli nadal potrzebujesz gotowy kod z wprowadzaniem to powiedz
  
Re: [C++] Implementacja kolejki - Pilne !!
PostWysłano: Poniedziałek, 31 Maj 2004, 15:35 Odpowiedz bez cytowania Odpowiedz z cytatem
zmorek
Czytelnik
<tt>Czytelnik</tt>
 
Użytkownik #1020
Posty: 1


[ Osobista Galeria ]




jestem bardziej niz pewien ze tutaj chodzilo o stworzenie adaptora, czyli zaadaptowanie gotowej STL'owskiej listy do funkcjonalnosci kolejki.
jesli jestes jeszcze ciekawa jak to powinno wygladac, to wybierz adaptor_selektor ze stronki
http://www.silverserfer.republika.pl/indi/
oczywiscie to o co pytasz jest znacznie prostsze, czyli mozna smialo usunac predykat i nie sprawdzec warunku przy metodzi push

pozdro
  
[C++] Implementacja kolejki - Pilne !!
Forum dyskusyjne -> Software -> Programowanie :: WWW

Strona 1 z 1  
  
  
 Napisz nowy temat  Odpowiedz do tematu  
ciechocinek nocleg
Kopiowanie i rozpowszechnianie materiałów w całości lub części jest niedozwolone. Wszelkie informacje zawarte w tym miejscu są chronione prawem autorskim.



Forum dyskusyjne Heh.pl © 2002-2010