Как работать с очередью - PullRequest
       23

Как работать с очередью

0 голосов
/ 21 ноября 2011

Я реализовал очередь в C. Я могу добавлять и удалять элементы.Теперь мне нужно реализовать функцию, которая сравнивает каждый новый элемент с суммой последних 86 элементов в очереди.Например, каждый из первых n элементов, n <= 86, я сравниваю с суммой первых n-1 элементов, но 87-й элемент мне приходится сравнивать с суммой последних 86 элементов.Как я мог справиться с этим? </p>

Можете ли вы дать мне несколько указаний о том, как я должен думать (возможно, чтение или что-то)?Я просто хочу понять такие вещи.

Спасибо.

1 Ответ

1 голос
/ 21 ноября 2011

Если я правильно понимаю, вы хотите добавить 430 элементов в очередь, и вы хотите сравнить каждый новый элемент с суммой 86 «самых последних» элементов в очереди, но игнорировать более старые элементы в очереди.

Что бы я сделал, это сохранить промежуточный итог и добавлять к нему каждый раз, когда вы добавляете элемент в очередь, но также использовать отдельную очередь, которая будет отслеживать последние 86 элементов, добавленных к реальному.,При добавлении первых 86 элементов у вас в основном будет две копии очереди.Для 87-го и последующих элементов вы удалите самый старый элемент из очереди «новые 86» и вычтите его значение из промежуточного итога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...