SteadyDrills

[TIL] Stack 자료구조 & Node 본문

알고리즘 & 자료구조

[TIL] Stack 자료구조 & Node

Drills 2024. 7. 15. 21:43

20240715

Stack 자료구조란?

사전적 정의로는 한쪽 끝으로만 자료를 넣고 뺄 수 있는 자료 구조이다.

비유를 하자면 무거운 벽돌을 위로 쌓는 형태의 자료 구조이다, 아래에 깔려있는 자료는 위의 자료를 꺼내고 나서야 꺼낼 수 있다.▶ Last In First Out이라고 해서 LIFO 구조라고 한다.

이러한 자료구조는 순서 그 자체가 필요하다던지 등을 이유로 많이 쓰인다.

 

class Stack:
    def __init__(self):
        self.top = None  #기본 값 
        
	#제일 위의 값을 새로운 노드로 교체
    def push(self, value):
        self.top = Node(value, self.top)   
    
    #제일 위의 값 꺼내고 그 값을 반환하고 바로 아랫값을 top으로 세운다.
    def pop(self):
        if self.top is None:
            return None

        node = self.top
        self.top = self.top.next

        return node.item
	
    #스택이 비어 있는지 확인.
    def is_empty(self):
        return self.top is None

 

 

Node란?

 노드는 자료구조의 기본 구성 요소이다.

노드는 기본적으로 가리키는 것(다른 노드와의 연결):포인터를 가진다.

class Node:
    def __init__(self, item, next):
        self.item = item
        self.next = next

 

 

'알고리즘 & 자료구조' 카테고리의 다른 글

[자료구조] 힙(Heap)  (0) 2024.11.21
[자료구조] 데큐 (Deque)  (0) 2024.11.15
[자료구조] 큐 (Queue)  (0) 2024.11.14
[자료구조] 비선형 구조 - 트리(Tree)  (0) 2024.07.26