홍우진의 개발 일기장
221004 알고리즘 정리 본문
728x90
반응형
단순 연결 리스트 생성
class Node():
def __init__(self):
self.data = None
self.link = None
node1 = Node()
node1.data = '선모'
node2 = Node()
node2.data = '재서'
node1.link = node2
node3 = Node()
node3.data = '명현'
node2.link = node3
node4 = Node()
node4.data = '제니'
node3.link = node4
node5= Node()
node5.data = '슈가'
node4.link = node5
print(node1.data, end=' ')
print(node1.link.data, end=' ')
print(node1.link.link.data, end=' ')
print(node1.link.link.link.data, end=' ')
print(node1.link.link.link.link.data, end=' ')
>>선모 재서 명현 제니 슈가
노드를 처음 생성하고 노드들에 값을 집어 넣은 뒤 링크로 이어준다.
반복문을 이용한 연결 리스트 생성
dataArray = ['박1','박2','박3','박4','박5']
node = Node()
node.data = dataArray[0]
head = node
for data in dataArray[1:]:
pre = node
node = Node()
node.data = data
pre.link = node
print(head.data, end=' ')
print(head.link.data, end=' ')
print(head.link.link.data, end=' ')
print(head.link.link.link.data, end=' ')
print(head.link.link.link.link.data, end=' ')
>>박1 박2 박3 박4 박5
맨 처음 위치에 노드 추가
node = Node()
node.link = head
node.data = '처음'
head = node
print(head.data, end=' ')
print(head.link.data, end=' ')
print(head.link.link.data, end=' ')
print(head.link.link.link.data, end=' ')
print(head.link.link.link.link.data, end=' ')
print(head.link.link.link.link.link.data, end=' ')
>>처음 박1 박2 박3 박4 박5
노드를 생성한 뒤 링크를 head에 잇는다. 그리고 head로 지정한다.
원하는 위치에 노드 추가, 마지막 노드 추가
pre = head
current = head.link
while current.link != None:
if current.data == "박3":
node = Node()
node.link = current
node.data = "이점오"
pre.link = node
break
pre = current
current = current.link
node = Node()
node.data = "마지막"
current.link = node
print(head.data, end=' ')
print(head.link.data, end=' ')
print(head.link.link.data, end=' ')
print(head.link.link.link.data, end=' ')
print(head.link.link.link.link.data, end=' ')
print(head.link.link.link.link.link.data, end=' ')
>>처음 박1 박2 이점오 박3 마지막
while문으로 반복하여 연결 리스트 안에 '박3'이 있는지 확인한다.
만약 있다면 새로 노드를 만든뒤 link들을 연결해주고 data에 '이점오'를 삽입한다.
while문을 빠져나왔을 시 마지막에 '마지막' 노드를 연결한다.
728x90
반응형
'학교' 카테고리의 다른 글
221011 알고리즘 정리 (1) | 2022.10.11 |
---|---|
마이크로프로세서 실험보고서 2 (0) | 2022.10.11 |
220927 알고리즘 정리 (0) | 2022.09.30 |
마이크로프로세서 실험보고서 (0) | 2022.09.28 |
[리눅스] 셸 프로그래밍 2 (0) | 2022.06.03 |
Comments