• 3 odgovora
  • 1.752 pregleda
Double ended queue 13.12.2008. u 13:57 · pre 217 meseci #1
Moze li pomoc kako da ovaj program (klasu) prepravim da radi i za red sa dva kraja (znaci da moze i da se upisuje i da se brise i na kraju i na pocetku)
Code:
#ifndef QUEUE_LINK_HPP_INCLUDED
#define QUEUE_LINK_HPP_INCLUDED

#include "list.hpp"

template <class T>
class LinkedQueue;

template <class T>
void printOut(const LinkedQueue<T> &);

template <class T>
class LinkedQueue:protected List<T>
{
    public:
        LinkedQueue(){}
        bool readFromQueue(T&) const;
        void removeFromQueue() {List<T>::remove(1);}
        void addToQueue(const T &El) {List<T>::add(List<T>::size()+1,El);}
        bool empty() const {return List<T>::empty();}
        int size() const {return List<T>::size();}
        friend void printOut<>(const LinkedQueue<T> &);
        virtual ~LinkedQueue(){}
};

template <class T>
void printOut(const LinkedQueue<T> &l)
{
    cout<<endl;
    cout<<"\tVelicina reda: "<<l.size()<<endl;
    cout<<"\tSadrzaj reda je: ";
    T retVal;
    for(int i=1; i<=l.size();i++)
    {
        if(i>1) cout<<", ";
        l.read(i,retVal);
        cout<<retVal;
    }

    cout<<endl<<endl;
}

template <class T>
bool LinkedQueue<T>::readFromQueue(T& retVal) const 
{
    return List<T>::read(1,retVal);
}
#endif // QUEUE_LINK_HPP_INCLUDED
Potpis
Eureka!

MILAN DJUKIC
D J U K A
Re: Double ended queue 13.12.2008. u 14:00 · pre 217 meseci #2
Pa dodaj samo jes dve metode...

Dakle neces imati
Code:
void removeFromQueue() {List<T>::remove(1);}
        
                        void addToQueue(const T &El) {List<T>::add(List<T>::size()+1,El);}


nego napravis ;
Code:

  int  size()const {return List<T>::size();}
  void remove(int i) {List<T>::remove(i);}
  void brisanjeSaKraja() {List<T>::remove(size());}

  void dodavanjeNaKraj(const T &podatak) {add(size()+1,podatak);}

 void brisanjeSaPocetka()  {remove(1);}
 void dodavanjeNaPocetak(const T &podatak) {add(1,podatak);}

[Ovu poruku je menjao zivotus dana 13.12.2008. u 16:20 GMT+1]

[Ovu poruku je menjao zivotus dana 13.12.2008. u 16:22 GMT+1]
Re: Double ended queue 13.12.2008. u 23:44 · pre 217 meseci #3
Hvala!
Potpis
Eureka!

MILAN DJUKIC
D J U K A
Re: Double ended queue 14.12.2008. u 19:26 · pre 217 meseci #4
Jos nesto me zanima:
Kako da na osnovu klase gore "class LinkedQueue" dodam funkciju za preklapanje operatora << ?

Nesto ovako:
Code:
friend ostream& operator<<(ostream &out,const LinkedQueue<T> &)
Potpis
Eureka!

MILAN DJUKIC
D J U K A
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme