[TIL]2022.11.24. 9일차

주민석·2022년 11월 24일
0
post-thumbnail

1번에 있는 코드들을 2번 사진에 있는 위에 쪽 처럼 생각을 했었다. 천천히 다시 천천히 읽다 보니까 밑에 있는 내용이라는 걸 깨닫게 되었다!
다른 분들보다는 느릴 지 몰라도 그래도 확실히 알아가는 게 좋다고 생각해서 많은 진도는 나가지 못했다... 링리... 너는 왤케 날 힘들게 하니!!

링크드리스트 특강 내용 정리

두번째 원소의 메모리 주소: 최초의 원소메모리주소 + 원소데이터 타입에 따른 바이트 크기

배열
조회 O(1)의 조회시간을 가짐, 상수적
추가/삭제: 배열 끝에다 할 시에 O(1), 다른곳에 할 시 O(N)
정렬: 다 다름...
검색: O(N) 처음부터 끝까지 다 찾아봄

링크드리스트
기차로 비유해주셨다.
화물칸들을 노드, 연결고리를 포인터
맨앞 노드는 head, 포인터가 NULL tail

한줄요약
배열: 데이터에 빈번하게 접근 시 유용
링크드리스트: 삽입/삭제가 빈번할 시에 유용

원격강의 내용 정리

class Node:
	def __init__(self,data): #self 는 자가자신을 지칭
    	self.data = data   #클래스 내부 사용되는 저장되는 변수/파라미터
        self.next = None

클래스: 분류, 집합 같은 속성과 기능을 가진 객체를 총칭

class 클래스명:
	pass	#안에 아무런 내용 없음, 빈 클래스 생성

a = 클래스명() 클래스를 통한 새로운 객체 생성
print(a) #주소값으로 분류 한 걸 볼 수 있음
print(a.param) param의 값을 불러올때
a.A() A라는 메소드를 실행

노드 연결시키기 ex)

first_node = Node(5)
second_node = Node(12)
first_node.next = second_node

링크드리스트에서는 head node만 가지고 있으면 된다!
self.head = Node(data)

자습하며 얻은정보

for문 안에 for문은 곱하기와 비슷하다!
나누기의 몫 연산자: //

profile
나는 주민석

0개의 댓글