티스토리 뷰
python lecture/basic
[edu] stack linkded list with node (스택 링크드 리스트)
burningrizen 2018. 12. 1. 14:00하나의 노드에는 data 와 다음 노드를 가르키는 next 를 가지고 있다.
next 에 none 이면 끝이고 head 의 next 가 none 이면 빈 스택이다.
화살표가 끈어지면 레퍼런스 카운트가 없기 때문에 gc 에 의해서
메모리가 해제될것이다.
링크드 리스트를 이용해서 스택을 구현해 보자
node 클래스를 만들고
node 를 stack 클래스에서 이용하자.
class Node:
def __init__(self, data, prev): self.data, self.prev = data, prev
class Stack:
def __init__(self): self.head = None
def is_empty(self): return not bool(self.head)
def push(self, data): self.head = Node(data, self.head)
def pop(self):
if self.is_empty():
return None
ret_data, self.head = self.head.data, self.head.prev
return ret_data
def peek(self): return None if self.is_empty() else self.head.data
s = Stack()
print(s.is_empty())
for i in range(10):
s.push(i)
print("peek of data : {}".format(s.peek())) # 5
while not s.is_empty():
print(s.pop())
'python lecture > basic' 카테고리의 다른 글
[edu] 2진 탐색 (0) | 2018.12.12 |
---|---|
[edu] 메모리 영역(코드, 데이터, 스택, 힙) (0) | 2018.12.01 |
[edu] 함수 매개변수, 리턴값 타입 지정 (0) | 2018.11.20 |
[edu] 프로파일링(소요시간) (0) | 2018.11.19 |
[edu] 번역 챗봇 (translate chatbot) (0) | 2018.11.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- gitignore
- 파이썬 독학
- 장고 카톡 자동응답
- 파이썬 프로그래밍
- 문서 비교
- 파이썬 강좌
- django
- 이미지 비교
- chatbot
- wsgi
- 파이썬
- 장고 플러스친구 자동응답
- 면접정답
- PuTTYGen
- django chatbot
- virtualenv
- gitlab
- pycrypto
- 파이썬 입문
- 문과 코딩
- Tistory
- Python
- 모바일 테마 적용
- 엑셀 비교
- 모바일 스킨 적용
- 플러스친구 자동응답
- 장고
- 면접답변
- GIT
- admin.py
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함