ν°μ€ν 리 λ·°
μ€ν
νΉμ ν λ¬Έμ λ₯Ό νκΈ°μ μ ν©ν μκ³ λ¦¬μ¦μ ꡬννλλ° μ΄μ©λλ μλ£κ΅¬μ‘°μ΄λ€.
μ€νμ μλ£(data element)λ₯Ό 보κ΄ν μ μλ (μ ν) ꡬ쑰μ΄λ€. λ¨, μ€νμμλ λ°μ΄ν°λ₯Ό λ£μ λμλ ν μͺ½μμ λ°μ΄ λ£μ΄μΌνκ³ (pushμ°μ°) κΊΌλΌ λμλ κ°μ μͺ½μμ λ½μ κΊΌλ΄μΌνλ(popμ°μ°) μ μ½μ΄ μλ€.
μ€νμ νμ μ μΆ(LIFO : Last-In First-out)μ νΉμ§μ κ°μ§λ μ ν μλ£κ΅¬μ‘°μ΄λ€.
μ€νμ λμ
μ€νμμ λ°μνλ μ€λ₯
- λΉμ΄μλ μ€νμμ λ°μ΄ν° μμλ₯Ό κΊΌλ΄λ € ν λ -> μ€ν μΈλνλ‘μ°(stack underflow)
- κ½ μ°¬ μ€νμ λ°μ΄ν° μμλ₯Ό λ£μΌλ € ν λ -> μ€ν μ€λ²νλ‘μ°(stack overflow)
μ€νμ μΆμμ μλ£κ΅¬μ‘° ꡬν
1. λ°°μ΄(array)μ μ΄μ©νμ¬ κ΅¬ν
- python 리μ€νΈμ λ©μλλ€μ μ΄μ©
2. μ°κ²° 리μ€νΈ(listed list)λ₯Ό μ΄μ©νμ¬ κ΅¬ν
- 미리 ꡬνν΄λ μλ°©ν₯ μ°κ²° 리μ€νΈ μ΄μ©
μ°μ°μ μ μ
- size() : νμ¬ μ€νμ λ€μ΄μλ λ°μ΄ν° μμμ μλ₯Ό ꡬν¨
- isEmpty() : νμ¬ μ€νμ΄ λΉμ΄ μλμ§λ₯Ό νλ¨
- push(x) : λ°μ΄ν° μμ xλ₯Ό μ€νμ μΆκ°
- pop() : μ€νμ 맨 μμ μ μ₯λ λ°μ΄ν° μμλ₯Ό μ κ±° (λλ λ°ν)
- peek() : μ€νμ 맨 μμ μ μ₯λ λ°μ΄ν° μμλ₯Ό λ°ν (μ κ±°νμ§ μμ)
νμ΄μ¬ 리μ€νΈλ‘ μ€ν ꡬννκΈ°
class ArrayStack:
# λΉ μ€νμ λ°°μ΄λ‘ μ΄κΈ°ν
def __init__(self):
self.data = []
# μ€νμ ν¬κΈ°
def size(self):
return len(self.data)
# λΉ μ€ν νλ¨ μ¬λΆ
def isEmpty(self):
return self.size() == 0
# λ°μ΄ν° μμ μΆκ°
def push(self, itme):
self.data.append(item)
# λ°μ΄ν° μμ μμ (리ν΄)
def pop(self):
return self.data.pop()
# μ€νμ κΌλκΈ° μμ λ°ν
def peek(self):
return self.data[-1]
μλ°©ν₯ μ°κ²° 리μ€νΈλ‘ μ€ν ꡬννκΈ°
class LinkedListStack:
# λΉμ΄μλ μλ°©ν₯ 리μ€νΈλ‘ μ΄κΈ°ν
def __init__(self):
self.data = DoublyLinkedList()
# μ€νμ ν¬κΈ° λ°ν
def size(self):
return self.data.getLength()
# μ€νμ΄ λΉμ΄μλμ§ νμΈ
def isEmpty(self):
return self.size() == 0
# μ€νμ λ°μ΄ν° μΆκ°
def push(self, item):
# λ
Έλλ₯Ό μλ‘ λ§λ¬
node = Node(item)
# λ§μ§λ§ μ리μ λ°μ΄ν°λ₯Ό λ£κ² λλ€
self.data.insertAt(self.size() + 1, node)
# μ€νμ λ°μ΄ν° μμ ν λ°ν
def pop(self):
return self.data.popAt(self.size())
# μ€νμ 맨 κΌλκΈ°μ λ°μ΄ν° λ°ν
def peek(self):
return self.data.getAt(self.size()).data
μ°Έκ³
from pythons.basic.stack import Stack
S = Stack() μ€ν μ΄κΈ°ν
dir(S) μ 곡νλ λ©μλλ€ νμΈ
'(ꡬ)μλ£κ΅¬μ‘°&μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ€νμ μμ© - μμμ νμ νκΈ°λ² (Postfix Notation) (0) | 2020.06.23 |
---|---|
μ€ν(Stacks) - μμμ κ΄νΈ μ ν¨μ± κ²μ¬ (0) | 2020.06.23 |
μλ°©ν₯ μ°κ²° 리μ€νΈ (Doubly Listed Lists) (0) | 2020.06.19 |
μ°κ²° 리μ€νΈ (Linked List) - λλ―Έ λ Έλ μΆκ° (0) | 2020.06.19 |
μ°κ²° 리μ€νΈ (Linked List) (0) | 2020.06.18 |
- Total
- Today
- Yesterday
- λΆνΈ μλμμ±
- κ²μλ¬Ό μμ
- κ²μλ¬Όμ‘°ν
- κ²μν μ‘°ν
- java jdk μ€μΉ
- μλ£κ΅¬μ‘°
- mysqlμ€μΉ
- typeAliases
- μκ³ λ¦¬μ¦
- μ¨λ¦¬μμ€
- java νκ²½λ³μ
- μ€νλ§λΆνΈ μλμμ±
- μλ°
- Java
- κ°λ°ν경ꡬμΆ
- tomcatμ€μΉ
- Algorithm
- μ΄ν΄λ¦½μ€ νκΈ μΈμ½λ©
- μ 체κ²μλ¬Ό μ‘°ν
- κ°λ°
- κ²μνλ§λ€κΈ°
- λ³λͺ μ²λ¦¬
- κ²μν μμ
- μ΄ν΄λ¦½μ€ μ€μΉ
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |