Под управлением JavaScript автономный механизм?

В то время как вы получите много сообщений, связанных с реализацией очереди с двумя стеками: 1. Либо сделав процесс enQueue намного более дорогостоящим 2. Или сделав процесс deQueue намного более дорогим

https://www.geeksforgeeks.org/queue-using-stacks/

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

Хотя можно утверждать, что буквально это все еще использует два стека, но в идеале это использует только одну структуру данных стека.

Ниже приводится объяснение проблемы:

  1. Объявите один стек для постановки и обработки данных и поместите данные в стек.

  2. в то время как у deQueueing есть базовое условие, когда элемент стека выскакивает, когда размер стека равен 1. Это обеспечит отсутствие переполнения стека во время рекурсии deQueue.

  3. При удалении очереди сначала вытолкнуть данные из верхней части стека. В идеале этот элемент будет элементом, который присутствует в верхней части стека. Теперь, когда это будет сделано, рекурсивно вызовите функцию deQueue, а затем вставьте элемент, расположенный выше, обратно в стек.

Код будет выглядеть следующим образом:

if (s1.isEmpty())
System.out.println("The Queue is empty");
        else if (s1.size() == 1)
            return s1.pop();
        else {
            int x = s1.pop();
            int result = deQueue();
            s1.push(x);
            return result;

Таким образом, вы можете создать очередь, используя структуру данных с одним стеком и стек вызовов рекурсии.

17
задан mark smith 2 July 2009 в 17:12
поделиться

8 ответов

Посмотрите Rhino или Spidermonkey . Возможно, вы захотите воспользоваться реализацией стандарта ServerJS , например Narwhal , пока вы на нем.

11
ответ дан 30 November 2019 в 12:13
поделиться

As for the engine - it's actually built in Windows itself and IE just uses it for webpages. Try it - you can make a simple .js file and run it. It's a great replacement for .bat files actually. :) You can also cscript.exe (for console) and wscript.exe (for windows app) to run your scripts. It's actually what Windows internally runs when you double-click a .js file.

As for debugging - I don't know. I know that:

  • Visual Studio supports script debugging, at least for browsers (but probably in other apps to that integrate with the Windows Scripting Host);
  • There is a separate "Script Debugger" downloadable for free from Microsoft, though last I checked it was pretty crappy;
  • The above mentioned cscript.exe and wscipt.exe have command-line parameters that have something to do with script debugging, although I don't know what they do.
6
ответ дан 30 November 2019 в 12:13
поделиться

Вы также можете попробовать движок JavaScript Google Chrome, V8:
http://code.google.com/p/v8/

5
ответ дан 30 November 2019 в 12:13
поделиться

Rhino - это реализация JavaScript с открытым исходным кодом, полностью написанная на Java.

3
ответ дан 30 November 2019 в 12:13
поделиться

Многие здесь рекомендовали Rhino или другие серверные реализации. Но из того, что я прочитал, вам нужно что-то, что должно имитировать среду браузера. В этом отношении я бы попробовал (это означает, что я не использовал эту комбинацию раньше) - это Mozilla Rhino и env.js . В то время как я' Я уже довольно давно использую Mozilla Rhino, не могу сказать слишком много о env.js.

env.js - это эмуляция среды браузера. Первоначально он был разработан Джоном Ресигом, но Крис Тэтчер заставил его выглядеть так, как есть сейчас. Что, на мой взгляд, выглядит очень многообещающим. Раньше не пробовал, но дал бы шанс.

3
ответ дан 30 November 2019 в 12:13
поделиться

Недавно я узнал, что если у вас установлена ​​Visual Studio, вы можете отлаживать JScripts с ее помощью, вызывая сценарий вроде cscript test.js // X , который открывает Окно отладчика Just In Time.

Затем вы можете пошагово выполнять сценарий со всеми преимуществами настоящего отладчика.

2
ответ дан 30 November 2019 в 12:13
поделиться

Используя Rhino или SpiderMonkey, вы можете иметь автономный движок JS или включать его в другие приложения, которые вы пишете; но вы не сможете протестировать что-либо, связанное с объектной моделью документа (DOM), например, манипулирование элементами и атрибутами или реагирование на события.

Все, что связано с DOM, предоставляется браузером в качестве среды хоста в котором работает движок JavaScript. Отсутствие браузера означает отсутствие DOM.

Если код, над которым вы планируете работать, абсолютно не зависит от чего-либо, предоставляемого средой браузера, вы можете начать с просмотра Rhino Shell .

EDIT : JScript от Microsoft также является автономным COM-компонентом, который можно запускать на Windows Script Host .

0
ответ дан 30 November 2019 в 12:13
поделиться

У меня был похожий вопрос, который не был слишком многообещающим: Есть ли IDE Javascript, не имеющая ничего общего с браузером?

Я думаю, что лучший ответ был Mozilla Rhino - хотя для ваших целей пакет, связанный с серверным javascript , может соответствовать всем требованиям. Обычно они используют двигатели Rhino или Spidermonkey, а также несколько других случайных.

1
ответ дан 30 November 2019 в 12:13
поделиться
Другие вопросы по тегам:

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