디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

이거 푸는사람 천재

프갤러(222.111) 2024.05.18 01:41:20
조회 150 추천 0 댓글 1


#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 10

#define SWAP(x, y, t) ((t) = (x), (x) = (y), (y) = (t))

typedef struct GraphNode
{
    int vertex;
    struct GraphNode *link;
} GraphNode;

typedef struct GraphType
{
    int n; // 정점의 개수
    GraphNode *adj_list[MAX_VERTICES];
} GraphType;

// 그래프 초기화
void graph_init(GraphType *g)
{
    int v;
    g->n = 0;
    for (v = 0; v < MAX_VERTICES; v++)
        g->adj_list[v] = NULL;
}
// 정점 삽입 연산
void insert_vertex(GraphType *g, int v)
{
    if (((g->n) + 1) > MAX_VERTICES)
    {
        fprintf(stderr, "그래프: 정점의 개수 초과");
        return;
    }
    g->n++;
}
// 간선 삽입 연산, v를 u의 인접 리스트에 삽입한다.
void insert_edge(GraphType *g, int u, int v)
{
    GraphNode *node;
    if (u >= g->n || v >= g->n)
    {
        fprintf(stderr, "그래프: 정점 번호 오류");
        return;
    }
    node = (GraphNode *)malloc(sizeof(GraphNode));
    node->vertex = v;
    node->link = g->adj_list[u];
    g->adj_list[u] = node;
}

GraphType g;
void print_arr(int arr[], int in[], int s, int i, int size)
{
    for (int j = 0; j < g.n; j++)
        printf("%3d", in[j]);
    printf("\n");
    for (int j = 0; j < g.n; j++)
        printf("%3d", arr[j]);
    printf("  - s:%d, i:%d, size:%d\n", s, i, size);
}
void generate(int arr[], int s, int size, int *in)
{
    int i, tmp;
    int in_degree[MAX_VERTICES] = {0};
    for (i = 0; i < g.n; i++) // copy
        in_degree[i] = in[i];

    GraphNode *node = g.adj_list[arr[s]]; // 각 정점의 진입 차수를 변경
    while (node != NULL)
    {
        in_degree[node->vertex]--;
        node = node->link;
    }

    s++;
    if (s == g.n)
    {
        for (i = 0; i < g.n; i++)
            printf("정점%d->", arr[i]);
        printf("\n");
    }
    else
    {
        for (i = s; i < size; i++)
        {
            if (in_degree[arr[i]] == 0)
            {
                SWAP(arr[s], arr[i], tmp);
                generate(arr, s, size, in_degree);
                SWAP(arr[s], arr[i], tmp);
            }
        }
    }
}
// 위상정렬을 수행한다.
void topo_sort()
{
    int i, tmp;
    int arr[MAX_VERTICES], size;
    int in_degree[MAX_VERTICES];

    // 모든 정점의 진입 차수를 계산
    for (i = 0; i < g.n; i++) // 초기화
        in_degree[i] = 0;
    for (i = 0; i < g.n; i++)
    {
        GraphNode *node = g.adj_list[i]; // 정점 i에서 나오는 간선들
        while (node != NULL)
        {
            in_degree[node->vertex]++;
            node = node->link;
        }
    }
    // 진입 차수가 0인 정점을 배열에 삽입
    size = 0;
    for (i = 0; i < g.n; i++)
    {
        if (in_degree[i] == 0)
            arr[size++] = i;
    }
    // 모든 위상 순서를 생성
    for (i = 0; i < size; i++)
    {
        generate(arr, i, size, in_degree);
    }
}

int main(void)
{
    graph_init(&g);
    // 문제에 주어진 그래프에 대한 인접리스트를 완성하시오.
    insert_vertex(&g, 0);
    insert_vertex(&g, 1);
    insert_vertex(&g, 2);
    insert_vertex(&g, 3);
    insert_vertex(&g, 4);
    insert_vertex(&g, 5);

    // 정점 0의 인접 리스트 생성
    insert_edge(&g, 0, 2);
    insert_edge(&g, 0, 3);

    // 정점 1의 인접 리스트 생성
    insert_edge(&g, 1, 3);
    insert_edge(&g, 1, 4);

    // 정점 2의 인접 리스트 생성
    insert_edge(&g, 2, 3);
    insert_edge(&g, 2, 5);

    // 정점 3의 인접 리스트 생성
    insert_edge(&g, 3, 5);

    // 정점 4의 인접 리스트 생성
    insert_edge(&g, 4, 5);

    // 위상 정렬
    topo_sort();
    // 동적 메모리 반환 코드 생략
    return 0;
}
/*실제출력

*/
/*출력예시
정점0->정점1->정점2->정점4->정점3->정점5->
정점0->정점1->정점2->정점3->정점4->정점5->
정점0->정점1->정점4->정점2->정점3->정점5->
정점0->정점2->정점1->정점4->정점3->정점5->
정점0->정점2->정점1->정점3->정점4->정점5->
정점1->정점0->정점4->정점2->정점3->정점5->
정점1->정점0->정점2->정점4->정점3->정점5->
정점1->정점0->정점2->정점3->정점4->정점5->
정점1->정점4->정점0->정점2->정점3->정점5->
계속하려면 아무 키나 누르십시오 . . .
*/


아무리 생각해도 안됨 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45415 65
2871225 요즘 mz사이에서 유행중이라는 콘텐츠 발명도둑잡기(118.216) 00:09 14 0
2871224 요즘 인기라는 日 할머니 대여 서비스 발명도둑잡기(118.216) 07.12 17 0
2871223 학생넷이랑 알찬 여름 함께하지 않을래? 발명도둑잡기(118.235) 07.12 9 0
2871222 오늘의 소설, 영화 실마리: 계좌 비공개 은행이 고객 살인청부해 돈 갈취 발명도둑잡기(118.235) 07.12 11 0
2871221 오늘의 게임, 소설, 영화 실마리: 인간과 귀신의 대결 작품 발명도둑잡기(118.235) 07.12 10 0
2871219 이재명 대통령 쭈꾸미삼겹살집 회동 보니 드는 생각 [1] 발명도둑잡기(118.216) 07.12 29 0
2871218 "네 여자친구 10분이면 꼬셔"..지인 폭행한 20대 징역형 발명도둑잡기(118.216) 07.12 14 0
2871216 이중 갈취로 '홀로캐시'(holocash) 뜯어낸 유대인 파워의 민낯 발명도둑잡기(118.216) 07.12 10 0
2871215 국내에만 29억개…무방비 IoT 기기, 사생활 유출 부른다 발명도둑잡기(118.216) 07.12 14 0
2871214 청혼 도중 폭포 아래로 추락…영상 확산에 누리꾼 '충격' 발명도둑잡기(118.216) 07.12 15 0
2871213 대동아냥덩권⭐ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 18 0
2871212 역대급 1위 터졌다…‘충격’에 휩싸인 일본 발명도둑잡기(118.216) 07.12 18 0
2871211 나도 코딩 개고수가 되고 싶어 [5] 아스카영원히사랑해갤로그로 이동합니다. 07.12 63 0
2871210 내일 칼럼 하나 쓸깡? 쓸 주제가 뭐 있을까낭? [1] ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 24 0
2871208 주 1회 칼럼 써야하는댕,, ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 10 0
2871207 살 엄청 찌는 백종원피자 알바한 오해원 발명도둑잡기(118.216) 07.12 10 0
2871206 실존하는게 놀라운 지구상의 신비한 생물들 발명도둑잡기(118.216) 07.12 11 0
2871204 월 600 정도만 되어도 만족하겠다 [6] 아스카영원히사랑해갤로그로 이동합니다. 07.12 47 0
2871203 이효리, 달라진 예능 환경 언급 "10년 전 방송선 女 가슴 사이즈로 놀 발명도둑잡기(118.216) 07.12 20 0
2871202 친중좌파 2재명 탄핵운동행진⭐+ 가즈아앙 ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 15 0
2871201 [단독] “의리의 한소희”, 뒤늦게 알려진 미담…5천만원 상당 깜짝 선물 발명도둑잡기(118.216) 07.12 20 0
2871200 김충현의 죽음, 그날 그때 무슨 일이... "김충현은 어느 회사 직원이었 발명도둑잡기(118.216) 07.12 9 0
2871199 안녕하세요 선생님들 외주에 대해서 질문이 있습니다. 프갤러(119.192) 07.12 11 0
2871197 불과 한달만에 대한민국을 처참하게 망가뜨리고 잇는 2찢명 ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 12 0
2871195 SSD는 TRIM 동작하면 완전 복구 불가능이지 않나? [2] ㅆㅇㅆ(124.216) 07.12 29 0
2871193 드라마 <우리 영화> 재밌나요? 발명도둑잡기(118.216) 07.12 9 0
2871192 노래유튜버들은 롱런하기 힘든것같구나 [1] 헬마스터갤로그로 이동합니다. 07.12 25 0
2871191 현대차 비방글 올린 사람 아이디 rtOS인데 임베디드랑 관련있을지 모른다 발명도둑잡기(118.216) 07.12 35 0
2871190 오늘도 납골공원에 어르신들 바둑두시는구나 [4] 헬마스터갤로그로 이동합니다. 07.12 40 0
2871189 요즘시대에 스프링만으로는 살아남기 어렵지? [1] ㅇㅇ(118.235) 07.12 30 0
2871186 도로? ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 18 0
2871183 고졸 10년차 연봉 6500 질문받음 [4] 프갤러(14.51) 07.12 50 0
2871182 도로롱!! 이 세상을 구해조! ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 30 0
2871181 참 살기좋은나라 축복받은나라여 ㅋㅋㅋㅋ 뒷.통수한방(1.213) 07.12 16 0
2871180 싱글벙글 AI가 그린 코딩 고수...jpg [3] ㅇㅇ갤로그로 이동합니다. 07.12 62 0
2871179 나님 수학문제 내면 프갤에서 아무도 못맞춤 ㅇㅅㅇ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 23 0
2871178 지인 우연히 마주쳤는데 돈 얼마나 범?? [2] 프갤러(124.50) 07.12 40 0
2871177 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 16 0
2871175 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 16 0
2871173 2재명도 이렇게 되려나 ㅋㅅㅋ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 21 0
2871171 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 13 0
2871170 esp32용 구형 macos 에뮬레이터 발명도둑잡기(118.235) 07.12 16 0
2871169 지금까지 구직 사이트를 한 번도 써본 적이 없음. [2] 프갤러(211.234) 07.12 61 0
2871167 큰거 온당! ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 34 0
2871166 인물이 싫더라도 공은 공이고 과는 과인데 진짜 미안한데 두창이는 [1] ㅆㅇㅆ(124.216) 07.12 50 2
2871164 가장 간단한 8비트 6502 브레드보드 컴퓨터 [1] 발명도둑잡기(118.235) 07.12 22 0
2871163 전라도 홍어 기생충 [1] ♥로스트미디어냥덩이♥갤로그로 이동합니다. 07.12 26 0
2871162 이번 상법개정안은 이전에 IMF랑 OECD에서 권고했던 사안인데 ㅆㅇㅆ(124.216) 07.12 29 0
2871161 걍 좌우 떠나서 찢<<그나마 뭐 할려고 하는듯 임기초 괜찮아보이는데 ㅆㅇㅆ(124.216) 07.12 40 1
뉴스 '아이쇼핑' 염정아 vs 원진아, 완벽한 설계자와 생존자의 팽팽한 대립! 파격 소재 담긴 독보적인 콘셉트! ‘아이쇼핑’만의 차별화된 핵심 포인트 집중 조명 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2