ํค์๋
- ADT(์ถ์์๋ฃํ)
- ์ฐ๊ฒฐ๋ฆฌ์คํธ
- ์คํ/ํ
์ถ์์๋ฃํ(ADT)
- ํ์ด์ฌ์๋ ๊ธฐ๋ณธ ์๋ฃํ์ธ ์ซ์, ๋ฌธ์์ด, ๋ฆฌ์คํธ, ๋์ ๋๋ฆฌ ๋ฑ์ด ์กด์ฌ
- ADT๋ ๊ธฐ๋ณธ ์๋ฃํ์ฒ๋ผ ๋ก์ง์ด ๊ตฌ์ฑ๋์ด์๋ ์๋ฃ๊ฐ ์๋ ํ์ํ ๊ธฐ๋ฅ๋ง ์ฌ์ฉ์๊ฐ ์ง์ ๊ตฌํํ ๋ก์ง
- ์ถ์ํ : ์ํํธ์จ์ด๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๋ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ์๊ณ ์ด๋ฐ ๋ถ๋ถ์ ๊ฐ๋จํ๊ฒ ํต์ฌ๋ง ์ค๋ช ํ๋ ๊ฒ
์ฐ๊ฒฐ๋ฆฌ์คํธ(Linked-list)
- ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๊ฐ ๋ ธ๋๊ฐ 1. ๋ณธ์ธ์ ๊ฐ, 2. ๋ค์ ๋ ธ๋์ ๋ํ ์ ๋ณด ๋ฅผ ๋ด๊ณ ์๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ๋๋ ํค๋ ๋
ธ๋๋ถํฐ ์์ฐจ์ ์ผ๋ก ๊ฑฐ์ณ์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด๋ณด๋ค ์๊ฐ๋ณต์ก๋๊ฐ ํฌ์ง๋ง
๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ/์ ๊ฑฐํ ๋, ๋ ธ๋ ์ฌ์ด์ ๋งํฌ๋ง ๋ฐ๊ฟ์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๋ค.(์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฅ์ ) - ๋จ๋ฐฉํฅ, ์๋ฐฉํฅ, ํํ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ์กด์ฌ
- ๋ฐฐ์ด๊ณผ ๋ฌ๋ฆฌ ์ฐธ์กฐ์ ๊ธฐ๋ฅ์ผ๋ก ๊ตฌํ๋๊ณ ๊ทธ์ ๋ฐ๋ผ ๋ฆฌ์คํธ์ ๊ธธ์ด๋ฅผ ๋ณ๋๋ก ์ง์ ํด์ค ํ์๊ฐ ์์
์์(๋จ๋ฐฉํฅ ์ฐ๊ฒฐ๋ฆฌ์คํธ)
class Node:
def __init__(self, value):
self.value = value
self.next = None
class linked_list:
def __init__(self, value):
self.head = Node(value)
def add_node(self, value):
if self.head == None:
self.head = Node(value)
else:
node = self.head
while node.next:
node = node.next
node.next = Node(value)
def del_node(self,value):
if self.head == None:
return None
elif self.head.value == value:
node = self.head
self.head = self.head.next
return node.value
else:
node = self.head
while node.next:
if node.next.value == value:
temp = node.next
node.next = node.next.next
return temp.value
else:
node = node.next
def ord_desc(self):
node = self.head
arr = []
while node:
arr.append(node.value)
node = node.next
return arr
def search_node(self,value):
node = self.head
while node:
if node.value == value:
return node
else:
node = node.next
์คํ(stack)
- ์ปต ์์ ๊ณผ์๋ฅผ ๋ด๋ ๊ฒ๊ณผ ๊ฐ์ ๊ตฌ์กฐ
- ์ฆ, LIFO(Last In, First Out) ; ํ์ ์ ์ถ๋ก ๋์ค์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ๋จผ์ ๋๊ฐ๊ฒ ๋๋ค.
- ํ์ด์ฌ์ ํจ์ ๋ํ ์คํ๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ํธ์ถ๋๋ค.(ํจ์์ ์ฝ์คํ)
- ํ์ด์ฌ ๋ฆฌ์คํธ์ ๋ด์ฅ ํจ์ append ์ pop ์ด ์คํ ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๊ณ ์๋ค.
ํ(queue)
- ์ํ ๋งคํ์ ์ค์ ์ ๊ฒ๊ณผ ๊ฐ์ ๊ตฌ์กฐ
- ์ฆ FIFO(First In, First Out) ; ์ ์ ์ ์ถ๋ก ๋จผ์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ๋จผ์ ๋๊ฐ๊ฒ ๋๋ค.
- ํ์ด์ฌ ๋ฆฌ์คํธ๋ก ํํํ์๋ฉด append์ pop(0)์ ์ฌ์ฉํ๋ฉด ๋๋ค. pop(0)์ด ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ ๊บผ๋ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ
'๐ฟ Data > ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 98. [์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ (0) | 2022.04.05 |
---|---|
[TIL] 97. ์ฌ๊ท(Recursion) (0) | 2022.04.05 |
[TIL] 95. python ์๋ฃ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ (0) | 2022.03.31 |
[TIL] 94. python OOP (0) | 2022.03.30 |
[TIL] 93. python ๋ฌธ์ ํด๊ฒฐ (0) | 2022.03.29 |