반응형

2016/12/01 35

[C언어 알고리즘] 5.2.1 인접 행렬로 방향성 있는 그래프 소스 코드

[C언어 알고리즘] 5.2.1 인접 행렬로 방향성 있는 그래프 소스 코드//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);//그래프 동적 생..

[C언어 알고리즘] 5.2 인접 행렬로 방향성 있는그래프

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

[C언어 알고리즘] 5.1.1 인접 행렬로 방향성 없는 그래프 소스 코드

[C언어 알고리즘] 5.1.1 인접 행렬로 방향성 없는 그래프 소스 코드//방향성 없는 그래프 #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 ..

[C언어 알고리즘] 5.1 인접 행렬로 방향성 없는그래프

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

[C언어 알고리즘] 5.그래프(Graph)

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

[C++ 무료 동영상 강의] 20. 캡슐화 실습1 – 복소수

[C++ 무료 동영상 강의] 20. 캡슐화 실습1 – 복소수 다루는 내용캡슐화 실습,클래스 다이어그램, 복소수 클래스 정의하기 앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다. 본문[디딤돌 C++] 20. 캡슐화 실습1 - 복소수

[C언어 알고리즘] 4.3.3 병합 정렬 알고리즘 소스 코드

[C언어 알고리즘] 4.3.3 병합 정렬 알고리즘 소스 코드//병합 정렬(Merge Sort) #include #include #include #define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환 int *origin; int on; void MergeSort(int *base, int n); void ViewArr(int *arr, int n); int main(void) { int arr[10] = { 9,4,3,10,5,8,7,6,2,1 }; origin = arr; on = 10; ViewArr(origin, on); MergeSort(arr, 10); ViewArr(origin, on); return 0; } void PrintSpace(int n); ..

[C언어 알고리즘] 4.3.2 병합 정렬 알고리즘 구현

[C언어 알고리즘] 4.3.2 병합 정렬 알고리즘 구현 이제 병합 정렬 알고리즘을 구체적으로 구현합시다. 병합 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) ah:= n/2 bh:= n - ah; 조건(n이 1보다 작거나 같으면) 종료 병합정렬(base,ah,compare) 병합접열(base+ah,bh,compare) tbase에 동적 메모리 할당(원소크기*원소개수) 메모리 복사(tbase,base) ai:=0 bi:=ah i:=0 반복(ai가 ah보다 작으면서 bi가 n보다 작다) 조건(tbase[ai]가 tbase[bi]보다 작거나 같으면 base[i] := base[ai] ai:= ai+1 아니면 base[i]:= base[bi] bi:= bi+1 i:=i+1 반복(..

[C언어 알고리즘] 4.3.1 병합 정렬 알고리즘 성능 분석

[C언어 알고리즘] 4.3.1 병합 정렬 알고리즘 성능 분석병합 정렬 알고리즘 성능을 분석해 보아요. 병합 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) ah:= n/2 bh:= n - ah; 조건(n이 1보다 작거나 같으면) 종료 병합정렬(base,ah,compare) 병합접열(base+ah,bh,compare) tbase에 동적 메모리 할당(원소크기*원소개수) 메모리 복사(tbase,base) ai:=0 bi:=ah i:=0 반복(ai가 ah보다 작으면서 bi가 n보다 작다) 조건(tbase[ai]가 tbase[bi]보다 작거나 같으면 base[i] := base[ai] ai:= ai+1 아니면 base[i]:= base[bi] bi:= bi+1 i:=i+1 반복(ai..

[C언어 알고리즘] 4.3 병합 정렬(Merge Sort) 알고리즘

[C언어 알고리즘] 4.3 병합 정렬(Merge Sort) 알고리즘 이번에는 병합 정렬 알고리즘을 살펴봅시다. 병합 정렬 알고리즘은 배열을 작은 단위의 배열로 분할한 후에 분할한 배열을 정렬하고 이들을 다시 정렬하면서 전체 배열을 정렬하는 알고리즘입니다. 병합 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) ah:= n/2 bh:= n - ah; 조건(n이 1보다 작거나 같으면) 종료 병합정렬(base,ah,compare) 병합접열(base+ah,bh,compare) tbase에 동적 메모리 할당(원소크기*원소개수) 메모리 복사(tbase,base) ai:=0 bi:=ah i:=0 반복(ai가 ah보다 작으면서 bi가 n보다 작다) 조건(tbase[ai]가 tbase[bi]..

반응형