- Today
- Total
Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래밍
- 파이썬 자료구조
- 크롤링
- 자료구조
- 파이썬 입문
- selenium
- 파이썬
- 파이썬활용
- 채용문제
- 중간시험
- python 중간고사
- 파이썬 알고리즘
- gdrive
- 면접 파이썬
- 알고리즘 강좌
- 파이썬3
- 알고리즘
- python data structure
- Crawling
- 알고리즘 강의
- 자료구조 강의
- 셀레니움
- c언어
- 기말시험
- 파이썬 강좌
- 코딩문제
- 코딩시험
- 대학시험
- 쉬운 파이썬
- 파이썬 강의
Notice
반원 블로그
02b. 단일 연결 리스트(singly linked list) - ii. 삽입 본문
삽입
단일 연결 리스트의 삽입은 head쪽에 노드를 계속 추가하며 우겨넣는(?)방식입니다.
저장된 노드가 없는 경우
먼저 아무런 노드도 없는 경우는 head값이 None입니다. 따라서 다음처럼 삽입이 이루어집니다.
저장된 노드가 있는 경우
그런데 저장된 노드가 있는 경우는 기존 노드는 밀려나는 식으로 새로운 노드가 들어옵니다. 따라서 새로운 노드의 next에 현재 head값을 저장하고, head에는 새로운 노드를 저장시킵니다.
코드 구현
#단일 링크드 리스트
class SLinkedList:
#S_L_list에서 쓸 노드
class Node:
def __init__(self, v, n = None):
self.value = v #저장된 데이터
self.next = n #다음 노드 가리키는 변수
#S_L_List에서 필요한 변수
def __init__(self):
self.head = None #첫 생성시 내부에는 노드가 없으므로
#삽입
def insertNode(self, v): #추가할 데이터
#만일 처음 노드일 경우 -> head값이 None임
if self.head is None :
#head에 새 노드를 저장
self.head = self.Node(v)
else: #이미 노드가 있는 경우
# head에 새 노드를 저장
# 기존 head에 저장된 노드는 새로 생성할 노드의 next로 저장
self.head = self.Node(v,self.head)
##테스트
if __name__=="__main__":
sl = SLinkedList()
sl.insertNode('1st')
sl.insertNode('2nd')
sl.insertNode('3rd')
위키독스 연재 : https://wikidocs.net/book/2868
'2018~ > 파이썬 자료구조 알고리즘' 카테고리의 다른 글
02c. 이중 연결 리스트(Doubly linked list) - i. 구조 (0) | 2019.05.02 |
---|---|
02b. 단일 연결 리스트(singly linked list) - v. 탐색 (0) | 2019.05.01 |
02b. 단일 연결 리스트(singly linked list) - iv. 삭제 (0) | 2019.04.30 |
02b. 단일 연결 리스트(singly linked list) - iii. 출력 (0) | 2019.04.29 |
02b. 단일 연결 리스트(singly linked list) - i. 구조 (0) | 2019.04.27 |
02b. 단일 연결 리스트(singly linked list) (0) | 2019.04.26 |
02a. 연결 리스트와 배열과 배열리스트 (0) | 2019.04.25 |
02. 연결 리스트 (0) | 2019.04.24 |
Comments