반응형

C언어 450

[C언어 자료구조] 7.6 진입 차수, 진출 차수 소스 코드

7.6 진입 차수, 진출 차수 소스 코드//Program.c #include #include #include typedef struct{//그래프 형식 정의 int vn; //정점 개수 int **matrix;//그래프 인접 행렬 } Graph; Graph *NewGraph(int max_vertex);//그래프 동적 생성 void DeleteGraph(Graph *graph);//그래프 소멸 void AddEdge(Graph *graph, int start, int goal);//간선 추가 void ViewGraph(Graph *graph);//그래프 정보 출력 void ViewIndegree(Graph *g);//진입차수 확인 void ViewOutdegree(Graph *g);//진출차수 확인 in..

[C언어 자료구조] 7.5 진입 차수, 진출 차수

7.5 진입 차수, 진출 차수이번에는 그래프에서 중요하게 생각하는 특징 중에 진입 차수와 진출 차수를 알아보아요. 특정 점정으로 갈 수 있는 간선의 수를 해당 정점의 진입차수(In degree)라고 불러요. 그리고 특정 정점에서 갈 수 있는 간선의 수를 진출차수(Out degree)라고 부르죠. 이번에는 그래프의 이와 같은 정보를 확인하는 기능을 구현해 보아요. 그래프 구현은 앞에서 소개한 것을 참고하세요. 이번에 추가할 기능은 진입 차수와 진출 차수를 확인하는 기능이예요. void ViewIndegree(Graph *g);//진입차수 확인 void ViewOutdegree(Graph *g);//진출차수 확인 먼저 진입 차수를 구하는 기능을 작성하기로 해요. 진입 차수는 상대 정점에서 자신의 정점으로 올..

[C언어 자료구조] 7.4 인접 행렬로 방향성 있는 그래프 소스 코드

7.4 인접 행렬로 방향성 있는 그래프 소스 코드//Program.c #include #include #include typedef struct{//그래프 형식 정의 int vn; //정점 개수 int **matrix;//그래프 인접 행렬 } Graph; Graph *NewGraph(int max_vertex);//그래프 동적 생성 void DeleteGraph(Graph *graph);//그래프 소멸 void AddEdge(Graph *graph, int start, int goal);//간선 추가 void ViewGraph(Graph *graph);//그래프 정보 출력 int main(void) { Graph *graph; graph = NewGraph(6);//그래프 동적 생성 AddEdge(gra..

[C언어 자료구조] 7.3 인접 행렬로 방향성 있는그래프

7.3 인접 행렬로 방향성 있는그래프방향성 있는 그래프는 간선의 출발지와 목적지가 정해져 있는 그래프를 말해요. 방향성 있는 그래프를 표현하는 방법 중에 간단한 그래프에는 인접 행렬을 많이 사용해요. 먼저 그래프 형식을 정의하기로 해요. 그래프 형식은 방향성 없는 그래프와 차이가 없어요. 정점의 개수와 인접 행렬을 멤버를 추가하세요. typedef struct{//그래프 형식 정의 int vn; //정점 개수 int **matrix;//그래프 인접 행렬 } Graph; 그래프를 생성하고 소멸, 추가, 정보 출력하는 기능을 제공하기로 해요. Graph *NewGraph(int max_vertex);//그래프 동적 생성 void DeleteGraph(Graph *graph);//그래프 소멸 void AddE..

[C언어 자료구조] 7.2 인접 행렬로 방향성 없는그래프 소스 코드

7.2 인접 행렬로 방향성 없는그래프 소스 코드 //Program.c //방향성 없는 그래프 #include #include #include typedef struct{//그래프 형식 정의 int vn; //정점 개수 int **matrix;//그래프 인접 행렬 }Graph; Graph *MakeGraph();//그래프 만들기 void ViewNeighbors(Graph *g);//이웃 정점 보여주기 void DeleteGraph(Graph *graph);//그래프 소멸 int main(void) { Graph *graph; graph = MakeGraph();//그래프 만들기 ViewNeighbors(graph); //이웃 정점 보여주기 DeleteGRaph(graph);//그래프 소멸 return 0..

[C언어 자료구조] 7.1 인접 행렬로 방향성 없는그래프

7.1 인접 행렬로 방향성 없는그래프방향성 없는 그래프는 정점 A에서 정점 B로 이동할 수 있으면 언제나 정정 B에서 정정 B로 이동할 수 있음을 보장하는 그래프예요. 방향성 없는 그래프를 표현하는 방법 중에 간단한 그래프에는 인접 행렬을 많이 사용해요. 인접 행렬로 방향성 없는 그래프를 표현하면 좌상단에서 우하단으로 이어지는 대각선에 대칭 형태죠. 먼저 그래프 형식을 정의하기로 해요. 인접 행렬로 그래프를 표현할 때 그래프에는 정점 개수와 인접 행렬이 필요하겠죠. typedef struct{//그래프 형식 정의 int vn; //정점 개수 int **matrix;//그래프 인접 행렬 }Graph; 여기에서는 그래프 생성, 소멸, 간선 추가, 이웃 정점을 보여주는 기능을 제공하기로 해요. Graph *M..

[C언어 자료구조] 7. 그래프(Graph)

7. 그래프(Graph)이번에는 그래프를 알아보기로 해요. 그래프는 정점과 간선으로 구성하는 자료구조예요. 그래프를 표현하는 방법은 여러가지가 있어요. 여기에서는 인접 행렬을 이용하는 방법과 연결리스트를 이용하는 방법을 알아볼게요.[C언어 자료구조] 7.1 인접 행렬로 방향성 없는그래프[C언어 자료구조] 7.2 인접 행렬로 방향성 없는그래프 소스 코드[C언어 자료구조] 7.3 인접 행렬로 방향성 있는그래프[C언어 자료구조] 7.4 인접 행렬로 방향성 있는 그래프 소스 코드[C언어 자료구조] 7.5 진입 차수, 진출 차수[C언어 자료구조] 7.6 진입 차수, 진출 차수 소스 코드

[C언어 자료구조] 6.3 이진 탐색 트리 소스 코드

[C언어 자료구조] 6.3 이진 탐색 트리 소스 코드 테스트 로직을 구현합시다. 테스트 로직은 단순히 이진 탐색 트리를 생성한 후에 다양한 도서 정보를 추가하고 검색과 삭제 기능 등을 호출하여 잘 동작하는지 확인하는 것입니다. 이 부분에 관한 별도의 설명은 생략할게요. //common.h #pragma once //헤더 파일을 한 번만 포함해서 컴파일 #include #include #include #include #include #include #include #pragma warning(disable:4996) //4996컴파일 경고 메시지 출력 해제 //Book.h #pragma once #include "common.h" #define MAX_TIT_LEN 200 #define MAX_AUT_LE..

[C언어 자료구조] 6.2 이진 탐색 트리 구현

[C언어 자료구조] 6.2 이진 탐색 트리 구현 동적으로 노드를 생성하는 함수를 구현합시다. 여기에서는 Node 형식 크기의 메모리를 할당받은 후 입력 인자로 받은 도서 정보를 설정하고 나머지 멤버는 0으로 초기화합니다. Node *New_Node(Book *data) { Node *node = 0; node = (Node *)malloc(sizeof(Node)); node->book = data; node->lch = node->rch = node->pa = 0; return node; } 동적으로 이진 탐색 트리를 생성하는 함수를 구현합시다. 생성할 때 root는 비어있는 상태이고 보관하고 있는 도서 개수는 0입니다. BST *New_BST() { BST *bst = 0; bst = (BST *)ma..

[C언어 자료구조] 6.1 이진 탐색 트리 설계

[C언어 자료구조] 6.1 이진 탐색 트리 설계 이제 이진 탐색 트리를 설계합시다. 이진 탐색 트리는 자료를 보관하는 컬렉션 중에 탐색 효율성을 높인 자료구조입니다. 여기에서는 도서를 보관하는 이진 탐색 트리를 구현하기로 할게요. 먼저 노드를 정의합시다. 이진 탐색 트리의 노드는 데이터와 왼쪽 자식 노드의 위치, 오른쪽 자식 노드의 위치로 구성합니다. 이 책에서는 삭제 편의성을 위해 부모 노드의 위치도 포함할게요. 그리고 동적으로 노드를 생성하는 함수를 제공합시다. typedef struct _Node Node; struct _Node { Book *book; Node *lch; Node *rch; Node *pa; }; Node *New_Node(Book *data); 이진 탐색 트리에는 root 노드..

반응형