Algorithm

    [1028알고리즘 11] 스택구현

    노드생성 스택의 push _입력 스택의 pop _ 빼내기._head 스택의 peek_맨앞데이터 보기 스택의 isEmpty() 스택이 비어있는지 여부. class Node: def __init__(self, data): self.data = data self.next = None class Stack: def __init__(self): self.head = None def push(self, value): next_node = self.head self.head = Node(value) self.head.next = next_node def pop(self): return_node = self.head if self.is_empty(): print("비었음") return self.head = retur..

    [1028알고리즘 10]스택 vs 큐

    스택 : Last in First out : 한쪽 끝으로만 자료를 넣고 뺼 수 있는 자료구조. 했떤 행동 순서기억할때 유리. push : 맨 위에 데이터 넣기 pop 맨위의 데이터 뽑기 peek 맨위의 데이터 보기. isEmpty 스택이 비어있는지 여부 반환. stack = [] # 빈 스택 초기화 stack.append(4) # 스택 push(4) stack.append(3) # 스택 push(3) top = stack.pop() # 스택 pop print(top) # 3! 스택구현 큐 First in First out enqueue(data) 맨 뒤에 데이터 추가. : tail 에 추가. dequeue() 맨앞에 데이터 뽑기 : head 에 서 뺌 peek() 맨앞의 데이터 보기 isEmpty()큐가..

    [1028알고리즘 09]링크드리스트 구현

    node 구현 _ data, next 링크드리스트 init _head 링크드리스트 append 링크드리스트 프린트 all 링크드리스트 get Node_index 링크드리스트 add Node index value 링크드리스트 delete Node index class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self, value): self.head = Node(value) def __len__(self): cur = self.head list_len = 1 while cur.next is not None: list_len += 1 cur = cur.next return li..

    [1028알고리즘 08]배열 vs 링크드리스트

    배열 링크드리스트특징 배열 링크드리스트 정의 같은 종류의 데이터들이 순차적으로 저장되는 자료구조 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다 특정원소 조회 원소에 즉시 접근 0부터 시작하는 인덱스 존재O(1) 리스트 특정원소 접근시 연결고리를 따라 탐색 O(N) 원소를 삽입/삭제 O(n) O(1)의 시간복잡도 앞뒤 포인터만 변경 원소 새로 추가 모든 공간 다 차면 새로운 공간 할당 모든 공간 다 차도 맨 뒤에 노드만 동적추가 특징 크기가 정해진 데이터 공간, 변경 불가,데이터 접근하는 경우가 빈번하면 Array 리스트는 크기가 정해지지 않은 데이터 공간삽입 삭제 빈번하면 LinkedList python 배열은 list 라고 부름 append 를 함 ..

    반응형