Пример решения задачи на языке программирования JavaScript - реализация работы стека - OkZachet.Ru
 

OkZachet.Ru

Решение задач и контрольных работ|Помощь на экзамене|Онлайн тесты

Скоро сессия студент? OkZachet.Ru - и нет проблем
Опыт. Качество. Гарантии. Бесплатные доработки.
г. Первоуральск, тел. 8(908)639-54-09, email: admin@okzachet.ru

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта
Главная Информатика и программирование JavaScript Пример решения задачи на языке программирования JavaScript - реализация работы стека
E-mail Печать PDF

Пример решения задачи на языке программирования JavaScript - реализация работы стека

javascript

Условие:
Реализовать работу стека на языке JavaScript.

Результат работы на codepen.io:

Для решения задачи вспомним - что такое стек. Стек (англ. stack — стопка; читается стэк) — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»). Как правило, за добавление в стек отвечает функция (метод) push, а за извлечение из стека - функция (метод) pop.

javascript - реализация работы стека

На рисунке выше показана организация стека в виде одномерного упорядоченного по адресам массива. Показаны операции вталкивания и выталкивания данных из стека операциями push и pop.

В нашей задаче реализован фактически такой же функционал, но добавлены некоторые элементы интерфейса, позволяющие интерактивно работать со стеком. Выполнены следующие требования:

1. Ввод размерности стека. При вводе размерности текущий стек очищается.
2. Контроль ввода числа в поле ввода размерности стека.
3. Кнопка PUSH - добавление элемента в стек.
4. Кнопка POP - извлечение элемента из стека.
5. Вывод состояния (содержимого) стека.
6. При добавлении элементов в стек - контроль размерности стека. Нельзя добавить элемент в стек  при превышении заданной размерности стека.

Ну вот, это пожалуй основные требования. Все реализовано на HTML и Javascript. Активно используются обработчики событий. Доступ к объектам страницы осуществляется по атрибуту id.

Код HTML (вставлять между тегами <body> и </body>):

<div>
<label for="sizeStack">Count stack's elements:</label>
<input id="sizeStack" size="4" onkeyup="check(this.id);" value="0"><br>
<label for="newElement">New stack's element</label>
<input id="newElement" size="4" value="" disabled><br>
<button id="pushButton" onclick="push();" disabled>Push</button>
<button id="popButton" onclick="pop();" disabled>Pop</button>
</div>
<hr>
<div id="stack">
Dimension of the stack:<br>0
</div>
<hr>

Код javascript (вставлять между тегами <head> и </head>):

<script language="javascript">
var stack = [];
var sizeStack = 0;

function showStack() {
var stackStr = "";
for (var i = 0; i < stack.length; i++){
stackStr += "element " + (i+1) + " - " + stack[i];
if (i+1 != stack.length) stackStr += "<br>";
}
document.getElementById("stack").innerHTML = "Dimension of the stack<br>" + sizeStack.toString() + ":<br>" + stackStr;
}

function pop(){
stack.pop();
showStack();
}

function push(){
var pushVal = document.getElementById("newElement").value.trim();
if( pushVal == "")
alert("Empty value");
else {
if (sizeStack == stack.length) {
alert("The stack is FULL");
} else {
stack.push(pushVal);
showStack();
}
}
}

function check(id){
var curVal = document.getElementById(id).value;
var intVal = parseInt(curVal,10);
var intVarStr = intVal.toString();
if (curVal == "") {
sizeStack = 0;
document.getElementById("newElement").disabled = true;
document.getElementById("pushButton").disabled = true;
document.getElementById("popButton").disabled = true;
}
if(isNaN(intVal) || curVal!=intVarStr) {
document.getElementById(id).value = curVal.substr(0,curVal.length-1);
}
else {
if(intVal < 0) document.getElementById(id).value *=-1;
if(intVal < 0) intVal *= -1;
sizeStack = intVal;
if (intVal < 1) {
document.getElementById("newElement").disabled = true;
document.getElementById("pushButton").disabled = true;
document.getElementById("popButton").disabled = true;
}
else {
document.getElementById("newElement").disabled = false;
document.getElementById("pushButton").disabled = false;
document.getElementById("popButton").disabled = false;
}
}
var stackDiv = "Dimension of the stack<br>" + sizeStack.toString();
document.getElementById("stack").innerHTML = stackDiv;
stack.length = 0;
}
</script>

Пример работы программы

javascript - реализация работы стека

Решение задачи на языке программирования Javascript завершено.

Если все же у Вас остались вопросы по выполнению заданий, то Вы можете ознакомиться с общей информацией по решению контрольных работ и задач на заказ на сайте OkZachet.Ru.

С Уважением, Администратор сайта.

Обновлено 25.08.2017 11:19  

Добавить комментарий

Перед опубликованием все комментарии модерируются!


Пройти опрос 1

По какому предмету Вам нужна помощь?
 

Пройти опрос 2

Из какого вы города?
 

Пройти опрос 3

Что нужно добавить на сайт?