Ni boyinsha



Download 6,03 Mb.
bet84/145
Sana05.07.2022
Hajmi6,03 Mb.
#740121
1   ...   80   81   82   83   84   85   86   87   ...   145
Bog'liq
0. УМК - ДТА [ққ]

Пример стека
Вот некоторые примеры, иллюстрирующие использование push и pop для стека. Предположим, что стек целых чисел уже создан. Фигура здесь, кажется, указывает, что стек фиксированного размера.

Стек может фактически быть реализован с помощью динамического размера.

Операция push 1 разместит значение 1 в пустой стек. push 2 поместит значение 2 сверху 1. Операция pop, которая не принимает никаких аргументов, вернет верхний элемент из стека, который несет значение 2. push 3 добавит 3 на вершину стека. push 4 добавит еще один элемент 4 на вершину стека. Мы можем добавить еще один элемент с тем же самым значением, что и предыдущие элементы в стеке, в этом случае, push 4 поставит 4 поверх другого 4. Операция peek, которая не принимает никаких аргументов, будет возвращать значение на вершине стека, то есть 4, не снимая верхний элемент из стека. pop удаляет, а также возвращает значение на вершину стека, в данном случае, со значением 4. Давайте рассмотрим простой пример с использованием стека для преобразования десятичного числа в двоичное число. Первоначальный подход для проведения конверсии может быть описан следующим образом.
Для данного числа n повторяется процесс:
- Находится остаток от деления на 2.
- Остаток выводится.
- n обновляется до n/2.
Мы хотим сначала найти остаток от деления числа на два. Например, дается число 29, и первый остаток будет 1.
n затем обновляется на n/2 с использованием целочисленного деления, в данном случае, 29/2 приведет к 14. Продолжая процесс, следующий остаток 0, и далее следуют три 1. Результат, полученный данным процессом, будет 10111, если остатки выводятся в порядке их создания.
Но правильный ответ должен быть 11101.
Так или иначе, мы должны хранить промежуточные результаты перед выводом их. После того как мы закончили конверсию, то результаты будут выводиться в обратном порядке. То есть, последний остаток будет выводиться первым, что предполагает, что стек будет соответствующим представлением для этой задачи. Предложенный подход будет push остатки в стек, а затем выводить результат, удаляя запись по одной из вершины стека.

Вот реализация идеи, использования стека для вывода десятичного числа в двоичном виде. Пустой стек целого типа настроен изначально. Двоичное число n, которое должно быть преобразовано, вводится в метод outputBinary в качестве параметра. В этом while цикле, остатки n вычисляются и помещается в переменную bit. Остаток вносится в целочисленный стек s. n затем заменяется на n/2 с использованием целочисленного деления. Обратите внимание, что мы явно обеспечиваем объект Integer как оболочку целого типа с помощью метода valueOf для класса Integer.
Когда while цикл завершается, стек должен содержать список остатков в обратном порядке, как они были получены. 2-й while цикл будет удалять остатки по одному сверху с помощью метода pop для стека s и присваивать bit. Каждый из остатков, удаленных из стека, будет выводиться с помощью System.out.print. Опять же, мы преобразовываем объект оболочки целого типа в целый типа, используя метод intValue. Вот еще один вариант предыдущего примера.

Единственное различие заключается в том, что тип данных для внесения в стек или удаления из стека не был преобразован в объект Integer явно. Здесь, мы можем просто использовать bit вместо целого объекта в качестве параметра, чтобы push потому что Java автоупаковка преобразует bit, параметр push, в "Integer.valueOf (bit)" во время компиляции. Точно так же, для присвоения s.pop(), которое, как предполагается, возвращает объект Integer, автораспаковка будет конвертировать левую часть в s.pop(). intValue() во время компиляции. Таким образом, обе программы будут эффективно вычислять то же самое.

Download 6,03 Mb.

Do'stlaringiz bilan baham:
1   ...   80   81   82   83   84   85   86   87   ...   145




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish