NodeJS(4기) 9일차

형집·2022년 11월 24일

NodeJS(4기)

목록 보기
12/56
  • 알고리즘 강의
  • 이진탐색, 재귀함수

오늘 강창민 튜터님의 강의에서는 링크드리스트에 대해서 학습을 하였다.

노드를 클래스로 정의해보기

class Node:
    def __init__(self):
        self.data = data
        self.next = None

링크드리스트를 클래스로 정의해보기

class Linked_list
    def __init__(self,data):
        self.head = Node(data)

링크드리스트 append 함수 추가

  • 맨 뒤까지 가서 새로운 Node넣기
def append(self, data):
    cur = self.head
    while cur.next is not None:
        cur = cur.next
    cur.next = Node(data)

링크드리스트 get_node 함수 추가

  • cnt를 증가시키며 idx자리 노드 찾기
def get_node(self, idx):
    node = self.head
    cnt = 0
    while cnt < idx:
        node = node.next
        cnt +=1
    return node

링크드리스트 add_node 함수 추가

def add_node(self,index,value):
    new_node = Node(value)#삽입할노드
    if index == 0: 
        new_node.next = self.head
        self.head = new_node 
        return
    node = self.get_node(index-1)
    new_node.next=node.next
    node.next=new_node

모두 어제 했어도 오늘 직접 해보려니 잘 안됐다.

이진탐색

  • 정렬이 되어 있어야 한다.

재귀함수

  • 어떠한 것을 정의할 때 자기 자신을 참조

팩토리얼

def factorial(n):
	if n==1:
    	return 1
	return n*factorial(n-1)

3주 차 정렬 시작하기 전에
자바스크립트 할 것

profile
개발자

0개의 댓글