홍우진의 개발 일기장

221004 알고리즘 정리 본문

학교

221004 알고리즘 정리

홍우진 2022. 10. 8. 11:54
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