Research note

[ 자료구조 ] 연결리스트 (Linked List)

1. 노드 출력 def printNodes(start): current = start if current == None: return print(current.data, end = ' ') while current.link != None: current = current.link print(current.data, end

Source

이 글은 기존 Tistory 블로그에서 옮겨온 글입니다. 원문: https://jms3084.tistory.com/11

1. 노드 출력

def printNodes(start):
    current = start
    if current == None:
        return
    print(current.data, end = ' ')
    while current.link != None:
        current = current.link
        print(current.data, end =' ')

2. 노드 삽입 3 단계 (첫 번째, 중간, 마지막)

def insertNode(findData, insertData):
    global memory, head, current, pre

#첫 번째 노드 삽입 if head.data == findData: node =Node() node.data = insertData node.link = head head = node return

#중간 노드 삽입
current = head
while current.link!=None:
    pre = current
    current = current.link
    if current.data == findData:
        node = Node()
        node.data = insertData
        node.link = current
        pre.link = node
        return

#마지막 노드 삽입
node =Node()
node.data = insertData
current.link = node

3. 노드 삭제 2단계 (첫 번째, 나머지)

def deleteNode(deleteData):
    global memory, head, current, pre
#첫 번째 노드 삭제
if head.data ==deleteData:
    current = head
    head = head.link
    del current
    return

#나머지 노드 삭제
current = head
while current.link != None:
    pre = current
    current = current.link
    if current.data == deleteData:
        pre.link = current.link
        del current
        return

4. 노드 검색 3단계 (첫번째, 중간, 마지막)

def findNode(findData):
    global memory, head, current, pre
    current = head
		#플래그 값
    flag = False
if head.data == findData:
    result =  current
    flag = True

while current.link != None:
    current = current.link
    if current.data == findData:
        result = current
        flag = True

if not flag:
    result =  Node()

return result

5. 연결 리스트의 원리

  • 노드 구조
    • 데이터링크로 구성되어 있다.
    • 첫 번째 노드는 head라고 한다.
    • 데이터를 노드 단위로 삽입, 삭제한다.

Search titles, venues, and tags.

move · openesc close