파일 목록
# week05_05_chap04_08.py
class Node:
def __init__(self):
self.data = None
self.link = None
def print_nodes(start):
current = start
if current is None: # 출력할 노드가 없으면
return
print(current.data, end=' ')
while current.link is not None:
current = current.link # 가르키는 대상 변경(증가)
print(current.data, end=' ')
print()
def insert_node(find_data, insert_data):
global head, current, pre
if head.data == find_data:
node = Node()
node.data = insert_data
node.link = head
head = node
return
current = head
while current.link is not None:
pre = current
current = current.link
if current.data == find_data:
node = Node()
node.data = insert_data
node.link = current
pre.link = node
return
node = Node()
node.data = insert_data
current.link = node
def delete_node(delete_data):
global head, current, pre
if head.data == delete_data:
current = head
head = head.link
del current
print('첫 번째 노드가 삭제되었습니다')
return
current = head
while current.link is not None:
pre = current
current = current.link
if current.data == delete_data:
pre.link = current.link
del current
print('첫 번째 이후 노드가 삭제되었습니다')
return
print('삭제된 노드가 없습니다')
def find_node(find_data):
global head, current
current = head
if current.data == find_data:
return current
while current.link is not None:
current = current.link
if current.data == find_data:
return current
return Node() # 찾는 노드가 없음
head, current, pre = None, None, None
data_array = ["다현", "정연", "쯔위", "사나", "지효"]
if __name__ == "__main__":
node = Node()
node.data = data_array[0]
head = node
for i in range(1, len(data_array)):
#for data in data_array[1:]:
pre = node
node = Node()
node.data = data_array[i]
#node.data = data
pre.link = node
print_nodes(head)
f_data = find_node("사나")
print(f_data.data)
f_data = find_node("이나")
print(f_data.data)
f_data = find_node("다현")
print(f_data.data)