Главная » Java, Структуры данных и алгоритмы » Java-реализация

0

Метод computeDailyHighSpan, представленный во фрагменте кода 4.18, является Java-реализацией алгоритма computeSpans2. Массив объектов класса Quote, представленный во фрагменте кода 4.19, используется методом computeDailyHighSpan для доступа к информации о курсе акций, а также для хранения вычисленных интервалов.

public void computeDailyHighSpan (Quote Q[ ]) {

// вычисляет интервал курса акций за каждый день с помощью // стека и сохраняет полученную информацию, в объектах класса // Quote

int prevHigh; // ближайший предшествующий день, когда курс акций // был выше

Stack D = new ArrayStack();

for (int i = 0 ; i < Q.length ; i++) { // обрабатывает текущий день i while ( !D.isEmpty() &&

Q[i].getPrice() >= ((Quote) D.top()).getPrice() ) // отметьте, что если первое условие !D.empty() // не выполняется, то второе условие не проверяется if (D.isEmptyO)

prevHigh = -1; // день i — новый максимум курса акций else

prevHigh = ((Quote) D.top()).getDay(); Q[i].setSpan(i — prevHigh); // вычисляет и сохраняет интервал

// курса акций D.push(Q[i]); // добавляет в стек текущий курс акций

}

}

Фрагмент кода 4.18. алгоритма computeSpans2

public class Quote {

private int day, price, span; public Quote(int d, int p) {

setDay(d); setPrice(p);

public void setDay(int d) { day = d; } public int getDay() { return day; } public void setPrice(int p) { price = p } public int getPrice() {return price;} public void setSpan(int s) { span = s; } public int getSpan { return span; }

}

Фрагмент кода 4.19. Класс объектов, используемый методом computeDailyHighSpan для доступа к информации о курсе акций, а также для хранения вычисленных интервалов

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии