Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2011, 21:30   #1
EddieG
Пользователь
 
Регистрация: 18.09.2010
Сообщений: 42
По умолчанию Односвязный список

Подскажите пожалуйста, как определить наилучший элемент списка по staff?

Код:
#include <iostream>

using namespace std;


template <class Name, class Staff, class Profit> class List
{
    struct Element
    {
        Name name;
        Staff staff;
        Profit prof;
        Element *next;        // указатель на следующий элемент списка
    };

    Element *pHead;           // указатель на первый элемент списка
    Element *pPrev;           // указатель на последний элемент списка
    int countElem;            // количество элементов в списке

  public:
  /*void best(List list)
  {
       if(list[0]->staff > list[1]->staff)
        cout << "The best is " << list[0]->name << endl;
  else cout << "The best is " << list[1]->name << endl;
  }*/

    List(int);


    ~List()
    {
        while(pHead != NULL)
        {
            Element *pTemp = pHead;
            pHead = pHead->next;
            delete pTemp;
        }
    }


    void  add_front(Name name, Staff staff, Profit prof)
    {
        Element *temp = new Element;
        temp->next = pHead;
        pHead = temp;
        if(pPrev == NULL)
            pPrev = pHead;
        pHead->name = name;
        pHead->staff = staff;
        pHead->prof = prof;
        ++countElem;
    }

    void add_back(Name name, Staff staff, Profit prof)
    {
        Element *temp = new Element;

        if(pHead == NULL)
            pHead = temp;
        else
            pPrev->next = temp;

        temp->name = name;
        temp->next = NULL;
        pPrev = temp;
        countElem++;
    }

    void print()
    {
        Element *pTemp = pHead;

        while(pTemp != NULL)
        {
            cout << pTemp->name << ' ' << pTemp->staff << ' ' << pTemp->prof << endl;
            pTemp = pTemp->next;
        }

        /*if(pTemp->staff < pTemp->staff)
        cout <<pTemp>name;
        else
        cout << pHead->name;*/

    }


    bool IsEmpty()
    {
        if(countElem == 0)
            return true;
        else
            return false;
    }

};

int main(int argc, char* argv[])
{
	 List <char*, int, double> list(3);
	 list.add_front("wer", 5, 79.9);
	 list.add_front("rrrrr", 7, 89.9);
	 list.add_front("eeeeee", 3, 819.9);
	 list.print();
	 //list.best(list);

	return 0;
}
Допущение несогласованных и логически несовместимых представлений - часть человеческого мышления.
EddieG вне форума Ответить с цитированием
Старый 19.10.2011, 15:30   #2
k1moshka
Пользователь
 
Регистрация: 16.10.2011
Сообщений: 16
По умолчанию

Какой профит в указателе на последний элемент структуры?
Код:
template <class Name, class Staf, class Profit>
Staf List<Name, Staf, Profit> :: theBest()
{
    Element *curPtr = pHead->nextPtr;
    Staf best = pHead->staf;
    int noElem = 1, i = 1;



    while (curPtr->next != 0) { 
        if (curPtr->staf > best)
           { best = curPtr->staf; noElem = i; }

        curPtr = curPtr->next;
        i++;    }
    if (curPtr->staf > best)
           { best = curPtr->staf; noElem = ++i; }
return noElem;
}
Что-то типа этого если под лучшим ты имеешь наибольший

Последний раз редактировалось k1moshka; 19.10.2011 в 15:38.
k1moshka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
односвязный список Alexander1205 Общие вопросы C/C++ 1 04.07.2011 00:59
Необходимо реализовать классы, односвязный список для хранения целых чисел, односвязный список для хранен lineico Помощь студентам 2 09.05.2011 17:45
Односвязный список crusarder Помощь студентам 1 23.10.2009 17:56
[C] Односвязный список Dieno Помощь студентам 2 19.10.2009 18:52
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52