자료구조에서 그래프란 정점(vertex)과 간선(edge)로 표현되는 자료구조 형태를 말한다. 트리는 그래프의 일부이다. 이때 그래프는 트리와 달리 계층적이지 않다. -정점(Vertex): 트리에서의 노드같은 개념이며 데이터를 담아내는 공간 -간선(Edge): 정점들을 이어주는 선-인접 정점(Adjacent vertex): 서로 간선으로 이어지는 정점들의 집합-단순 경로(Simple path): 동일한 간선을 지나지 않는 경로-싸이클(Cycle): 단순경로 중에서 정점의 시작과 끝이 같은 경로-차수(Degree): 인접 정점의 개수-진출 차수(Out-degree): 방향 그래프에서 앞으로 나아가는 간선의 수-진입 차수(In-degree): 방향 그래프에서 들어오는 간선의 수 -그래프 표현 방법..
1. 트리구조의 순회방법 1)전위 순회(Preorder): Root를 제일먼저 순회 (Root ->Left -> Right) ( A, B, D, H, E, C, F, G)2)중위 순회(Inorder): Root를 중간에 순회(Left -> Root -> Right)(H, D, B, E, A, F, C,G)3)후위 순회(Posterorder): Root를 제일 나중에 순회(Left -> right -> Right)(H, D, E, B, F, G, C, A)4) 레벨 순회(Levelorder) : 위의 레벨부터 순차적으로 탐색(BFS:Breath First Search)(A, B, C, D, E, F, G, H)-레벨 순회를 제외한 순회들은 깊이부터 탐색하는 DFS(Depth First Search)이다. ..
1. 링크드 리스트(Linked List) -배열과 같이 완전히 이어 붙히지 않고 지정하는 다음데이터를 가리키는 포인터를 만들어서 연결한다. 이렇게 연결된 사슬처럼 데이터를 저장하는 자료구조를 링크드 리스트(연결리스트)라고 한다. -배열과의 차이점은 삽입,삭제가 배열보다 빠르다. 연결된 선만 바꿔주면 되기 때문이다. 단점으로는 데이터 조회시에 인덱스를 활용하지 못하므로 배열보다 느리다. #기본적인 개념형태class Node(): def __init__(self, data): self.data = data self.next = None# 각 노드들 생성n1 = Node(1)n2 = Node(2)n3 = Node(3)n4 = Node(4)#노드 연결n1.next = n2..
1. 트리 구조 및 용어 설명1. 루트 노드(Root node): 부모가 없는 제일 위의 노드(A)2. 단말 노드(Leaf node): 자식 노드가 없는 제일 아래 층의 노드들3. 내부 노드(Internal node): 루트노드와 단말 노드 사이의 노드들4. 간선(Edge): 노드들을 연결하는 선5. 깊이(Depth): 특정 노드를 가기 위한 간선의 개수(C의 깊이 = 2)6. 레벨(Level): 같은 깊이의 노드들(level1 = B,F,H)7. 차수(Degree): 자식 노드의 개수(B의 차수 = 2, H의 차수=1)8. 트리의 차수(Degree of tree): 트리의 최대 차수(=2)9. 서브 트리(Sub tree): 레벨 0 밑에서의 하위 트리 구조들 #기본개념class Node: def..
1. 스택(Stack) 위에서 아래로 탑을 쌓는 형식이며, 자료를 꺼내올때는 맨 위에서부터 꺼내온다.(Last in First out) class Stack(): def __init__(self): self.stack =[] def push(self, x): self.stack.append(x) def pop(self): pop_ = None if self.isEmpty(): print("Stack is empty") else: pop_ = self.stack.pop() return pop_ def isEmpty(self): is..
#1 글을 작성하고 블로그를 관리해보세요.Ko12334님의 회원 가입을 진심으로 축하합니다. 이 글은 비공개로 작성돼 있습니다.'편집'으로 내용을 바꾸시거나, 삭제 후 '새 글을 작성'하셔도 됩니다.글 뿐만 아니라 블로그의 각종 설정을 변경할 수도 있습니다. '블로그관리'를 확인해보세요. #2 다양한 스킨이 있어요.티스토리에 있는 다양한 '스킨'도 살펴 보세요.블로그나 사이트를 사용하는 목적에 맞게 스킨을 고를 수 있습니다.어떤 이야기를 주로 하실 건가요? 잘 생각해 보시고, 마음에 드는 스킨을 고르세요.'스킨 편집'을 통해 다양한 커스텀, 그리고 홈 꾸미기를 적용하실 수도 있답니다. #3 포럼에서 사람들과 소통하세요.마지막으로 사용하시다가 티스토리에 대해 궁금한 내용이 있다면 '포럼'을 확인하세요.찾기..