BFS, DFS 정의 _ 순회 탐색 알고리즘
BFS(breadth-first search) 너비우선탐색 BFS는 큐, 딕셔너리, 리스트, 내장함수 개념을 활용 bfs_graph = { # 그래프를 인접리스트로 표현 1: [2,3,4], 2: [1,5,6], 3: [1,6], 4: [1], 5: [6,7], 6: [5], 7: [6], } def bfs_queue(start_node): bfs_list = [start_node] queue = [start_node] while queue:#외부반복문 node = queue.pop(0) for i in bfs_graph[node]: #내부반복문 if i not in bfs_list: bfs_list.append(i) queue.append(i) return bfs_list bfs_queue(2) # 1..
2021. 5. 25.
ADT(추상자료형)와 자료구조 (1) (연결리스트,큐)
핵심 : ADT(Abstract Data Type)와 연결리스트, 큐, 스택 앞 장에서는 파이썬의 기본자료형(숫자, 문자열, 리스트, 딕셔너리 등)에 대해 배움 ADT는 추상적으로 필요한 기능을 나열한 일종의 명세서(로직) ADT는 기본자료형(대표적으로 리스트, 숫자, 문자열)을 활용하여 사용자에 의해 구현 (즉 프로그래머의 설계에 따라 자유롭게 구성됨) linked-list(연결리스트) 연결은 프로그래밍에서 참조의 기능으로 구현됨 연결리스트는 리스트의 길이를 별도로 지정해줄 필요없다. 연결리스트는 별도의 인덱스를 지정할 필요없이 연결되는 구조 연결리스트의 각 요소는 참조하는 노드에 저장 # 연결리스트의 노드를 저장하는 첫 단계 class Node: def __init__(self,value,next=N..
2021. 5. 13.