Создание очереди FIFO в C

Это был способ, которым был сделан запрос.

Я изменил это:

 this.client.get('http://localhost:5000/endpoint').subscribe(

      data => {
        console.log(data);

      }

    );

На это:

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json'
  })};

this.client.get('http://localhost:5000/endpoint', httpOptions).subscribe(

  data => {
    console.log(data);

  }

);

Убедитесь, что тип ответа вашего сервера соответствует ожидаемому HttpClient.

7
задан Tyler 23 April 2010 в 19:32
поделиться

7 ответов

Это очень легко. Просто реализуйте двунаправленный связанный список, держа указатель на последний объект в списке.

, Чтобы добавить к очереди, создайте новый узел вначале, связав его с предыдущим началом. (нормальный список вставляет)

, Чтобы удалить из очереди, deref указатель на последний объект, изменить указатель на указатель предыдущего объекта и возвратить последний объект... (Это то, почему двунаправленный связанный список. Другая опция является отдельно-связанным-списком и итерацией целого списка для получения указателей на последние два элемента).

4
ответ дан 6 December 2019 в 23:14
поделиться

Это кажется, что Вы пытаетесь сделать очередь, где Вы вставляете в одном конце и вытягиваете от другого.

Один способ сделать, который является со связанным списком. Можно сохранить указатели на голову и хвост. Когда Вы вставляете, добавляете новую запись на хвост и когда Вы выталкиваете что-то от очереди, Вы захватываете узел, на который указывает головной указатель. (Или вице-стих, это не очень имеет значение)

2
ответ дан 6 December 2019 в 23:14
поделиться

Это только было бы стандартным связанным списком, кроме Вас только определяют функции для осуществления главного элемента и материала нажатия на элемент хвоста? Вы могли даже сделать это в отдельно связанном списке с указателем хвоста, а не полностью двунаправленном связанном списке.

2
ответ дан 6 December 2019 в 23:14
поделиться

Используя 2 стека для этого забавное решение и медленное. Почему Вы упоминаете стек, когда можно использовать обычную очередь? Это - FIFO, который Вы хотите, правильно? Вы могли использовать массив для создания очереди, moduloing ее длина для создания этого проспектом.

1
ответ дан 6 December 2019 в 23:14
поделиться

Можно также реализовать очередь с кольцевая антенная решетка .

1
ответ дан 6 December 2019 в 23:14
поделиться

Хотя правильные решения уже предложены, я просто хотел бы исправить тот FIFO не действительно стек.

, Что вопрос часто находится в классе Алгоритмов, где они просят, чтобы Вы создали стопки использования и доказали, что амортизируемая стоимость для вставки и удаления является O (1).

FIFOs может быть создан с помощью двунаправленного связанного списка, массива/вектора с начинанием и указателем конца, с кольцевыми антенными решетками, и т.д. и т.д.

1
ответ дан 6 December 2019 в 23:14
поделиться

Я думаю, что OP хотел знать, как обработать его, если все, он получен, является стеками по любой тайной причине. Прием должен помнить, что продвижение материала на стек и затем сование его от реверсов порядок пунктов, таким образом, можно использовать два стека для инвертирования его дважды.

Входящие объекты продвинуты на stack1 и все выталкиваются прочь на stack2, когда stack2 пуст. Таким образом, первый объект продвинут на stack1, сразу вытолканный прочь и продвинул на stack2, готовый к выводу. Последующая стопка объектов на stack1 до stack2 выталкивается, в которой точке последний объект идет на stack2, затем предпоследнее, и так далее до stack1 пусто снова. Теперь все объекты повторно сложены на stack2 с новейшим внизу и самым старым наверху. Новые нажатия продолжают расти на stack1, ожидающем stack2 для становления пустыми снова, и stack2 просто производит объекты в первоначальном заказе, пока это не пусто, в которой точке мы повторяем процесс перестека нестека.

я не прокомментирую об эффективности и т.д.; это просто, "Вы могли сделать это тот путь". Меня спросили, это в интервью и моем непосредственном ответе было, "Какой идиот сделает это? Просто реализуйте фактическую очередь и будьте сделаны с нею" - я не думаю, что это было ответом, который они искали все же.

0
ответ дан 6 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: