본문 바로가기

전체 글

이진 탐색트리_ 탐색, 삽입, 삭제, 전위순회 외부노드라는 개념을 이용해서 만들었음. 노드에 값이 들어있는 것들을 내부노드, 노드에 key값도 없고 자식도 없는 것들을 외부노드. 단말 내부노드에는 자식이 없는 경우에 외부노드를 붙여 놓았음. 논리 짠 부분은 A4용지에 적어놔서 스캔해서 올리기 //이진탐색트리 탐색,삽입,제거,순회 #include #include typedef struct Node{ struct Node* P; struct Node* L; struct Node* R; int key; }NODE; typedef struct Tree{ NODE* Root; }TREE; NODE* makeNode(NODE* parent ,int k) { NODE* node = (NODE*)malloc(sizeof(NODE)); node->P = parent.. 더보기
최소신장트리 간선의 가중치 출력 - Kruskal으로 간선이 선택됨 후기 1. 디버깅에서 조사식을 이용해서 배열에 들어있는 내용들을 전체를 확인할 때, 이름에 g->E , 9 이런식으로 쓰면 E가 가리키는 배열에 원소 9개를 한번에 볼 수 있음2. minLoc 을 초기화 안해도 될 것 같아서 , 그냥 썼는데 문제 발생. 초기화는 항상 신경쓰는게 맞는 것 같다. 구상 에서의 문제 :bag을 어떻게 표현하는게 문제였는데, 아래 노트를 보면 초반에 생각들대로 구현하는 것 가능할 것으로 예상되지만, 확실히 다른 코드를 보고 배우거나, 누군가에게 조언을 들어가면서 피드백을 받아가며 코딩하는 것이 좋다. 물론, 도움을 받을 상황이 아니면 스스로 생각한대로 어떻게든 구현해내는게 맞다. 간단한 방법을 찾는 방법?내게 필요했던 것은 두 정점이 같은 bag에 담겼는지 아닌지를 단순히 확인.. 더보기
무방향 간선 그래프 만들고 그래프 너비우선탐색(BFS)으로 순회 고안 할 때 아이디어 1. label을 이용해 해당 Vertex가 방문 되었는지(=1) 안되었는지(=0) 2. 큐를 이용해서 깊이레벨이 낮은 부분부터 접근할 수 있게 //BFS(너비우선 탐색) #include #include typedef struct Vertex{ int k; int label; }VERTEX; typedef struct Edge{ int endV1; int endV2; int label; //설계할 때 괜히 만들음. 없어도 됨. }EDGE; // 이거 구조에 대해서 생각할 필요가 있음. 일단은 포인터 형식을 이용하지 않았음 typedef struct Graph{ EDGE* E; VERTEX* V; int** Mat; }GRAPH; void makeEdge(GRAPH* g, int v1.. 더보기