- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gdrive
- 코딩시험
- 코딩문제
- selenium
- 자료구조 강의
- 파이썬
- 중간시험
- 알고리즘 강좌
- 채용문제
- 프로그래밍
- 대학시험
- 파이썬활용
- 기말시험
- 파이썬 강의
- 알고리즘
- python data structure
- 알고리즘 강의
- 쉬운 파이썬
- 면접 파이썬
- Crawling
- 파이썬 강좌
- 크롤링
- 파이썬 자료구조
- 파이썬3
- 셀레니움
- 파이썬 입문
- python 중간고사
- c언어
- 파이썬 알고리즘
- 자료구조
목록파이썬 알고리즘 (26)
반원 블로그
출력 head가 가리키는 노드부터 순차적으로 접근할 수 있습니다. head를 통해서 첫 노드에 접근하고, 이후 노드가 가지고 있는 변수 next를 통해서 다음 노드로 이동합니다. 만일 next의 변수가 None이라면 해당 노드가 마지막 위치의 노드란 얘기겠죠? 저장된 노드가 없을 때 그냥 없다라는 출력을 해주겠습니다. 저장된 노드가 있을 때 먼저 head가 가리키는 Node의 value를 출력하고, 이후 변수 next가 None이 아니라면 next를 통하여 다음 노드로 이동하고 value를 출력합니다. 이 과정을 next가 None일 때까지 반복합니다. 코드 구현 #단일 링크드 리스트 class SLinkedList: #S_L_list에서 쓸 노드 class Node: def __init__(self, ..
삽입 단일 연결 리스트의 삽입은 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_..
기본구조 따로 떨어져있으니 다음에 연결된 노드를 가리켜줄 변수가 필요합니다. 대게 이를 next라는 변수로 이름 짓습니다. 맨 처음 노드를 가리킬 녀석이 필요하므로 단일 연결 리스트에는 head라는 변수를 두어 처음 노드가 어디있는 지 저장합니다. 코드 구현 위에 설명한 구조만 가지고 노드와 리스트 클래스를 구현해봅시다. 변수 은닉화(앞에 __붙이는 것)하면 구현하는 코드가 길어지니 생략하겠습니다. #단일 링크드 리스트 class SLinkedList: #S_L_list에서 쓸 노드 class Node: def __init__(self, v, n = None): self.value = v #저장된 데이터 self.next = n #다음 노드 가리키는 변수 #S_L_List에서 필요한 변수 def __in..
리스트 중 가장 단순한 형태인 단일 연결 리스트(단순 연결 리스트)를 알아봅니다. 위키독스 연재 : https://wikidocs.net/book/2868
여러 데이터를 저장하는 구조 여러 데이터를 저장하는 자료형은 대표적으로 배열(Array)와 리스트(List)가 있습니다. 배열 여러 데이터를 저장한 자료형 중에 월등히 빨리 접근 할 수 있습니다. 하지만 처음 생성시 얼만큼 사용할 건지 미리 정해야되서, 실제 사용보다 너무 크게 크기를 정하면 메모리 낭비가 됩니다. 또한 배열 크기가 너무 큰 경우 이만큼 할당할 수 있는 메모리 공간을 찾기 힘들 수 있습니다. 배열이 꽉 차면 사이즈 변경이 불가하기 때문에 새로 만들어 복사해줘야합니다. 그 외로 다차원 표현이 가능합니다.(2차원 또는 3차원 배열) 배열 리스트 배열과는 다르게 사이즈 변경이 가능하여 데이터 삽입 및 삭제가 가능합니다. 하지만 구조는 배열처럼 따닥 붙어있어서 너무 크면 메모리 할당이 힘들 수도..