디시인사이드 갤러리

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

갤러리 본문 영역

아주 가벼운 컴퓨터 공학 과제

메리프갤로그로 이동합니다. 2011.10.06 02:12:31
조회 493 추천 0 댓글 1

#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
#define MAX_VERTICES 50
#define MAX_QUEUE_SIZE 100
typedef struct GraphType{
 int n;//정점의 개수
 int adj_mat[MAX_VERTICES][MAX_VERTICES];
} GraphType;
typedef int element;
typedef struct QueueType{
 element queue[MAX_QUEUE_SIZE];
 int front, rear;
} QueueType;

 

void error(char *message)
{
 fprintf(stderr,"%s\\n",message);
 exit(1);
}

//초기화 함수
void init(QueueType *q)
{
 q->front=q->rear=0;
}
//공백 상태 검출 함수
int is_empty(QueueType *q)
{
 return (q->front==q->rear);
}
//포화상태 검출함수
int is_full(QueueType *q)
{
 return ((q->rear+1)%MAX_QUEUE_SIZE==q->front);
}
//삽입함수
void enqueue(QueueType *q, element item)
{
 if(is_full(q))
  error("큐가 포화상태 입니다.");
 q->rear=(q->rear+1)%MAX_QUEUE_SIZE;
 q->queue[q->rear]=item;
}
element dequeue(QueueType *q)
{
 if(is_empty(q))
  error("큐가 공백상태 입니다.");
 q->front=(q->front+1)%MAX_QUEUE_SIZE;
 return q->queue[q->front];
}
//피크함수
element peek(QueueType *q)
{
 if(is_empty(q))
  error("큐가 공백상태입니다.");
 return q->queue[(q->front+1)%MAX_QUEUE_SIZE];
}

 


//그래프 초기화
void graph_init(GraphType *g)
{
 int r,c;
 g->n=0;
 for(r=0; r<MAX_VERTICES; r++)
  for(c=0; c<MAX_VERTICES; c++)
   g->adj_mat[r][c]=0;
}
//정점 삽입 연산
void insert_vertex(GraphType *g, int v)
{
 if(((g->n)+1)>MAX_VERTICES){
  fprintf(stderr,"그래프: 정점의 개수 초과");
  return;
 }
 g->n++;
}
//간선 삽입 연산
void insert_edge(GraphType *g, int start, int end)
{
 if(start>=g->n||end>=g->n){
  fprintf(stderr,"그래프: 정점의 개수 초과");
  return;
 }
 g->adj_mat[start][end]=1;
 g->adj_mat[end][start]=1;
}

int visited[MAX_VERTICES];

void bfs_mat(GraphType *g, int v)
{
 int w;
 QueueType q;
 init(&q); //큐 초기화
 visited[v]=TRUE; //정점 v방문표시
 printf("%d", v); //정점 출력
 enqueue(&q, v);
 while(!is_empty(&q)){
  v=dequeue(&q);
  for(w=0; w<g->n; w++)
   if(g->adj_mat[v][w]&&!visited[w]){
    visited[w]=TRUE;
    printf("%d", w);
    enqueue(&q, w);
   }
 }
}

 

int main()
{
 int i;
 GraphType g;

 graph_init(&g);
 for(i=0;i<4;i++)
  insert_vertex(&g, i);
 //인접 리스트 및 노드 생성
 insert_edge(&g, 0, 1);
 insert_edge(&g, 1, 0);
 insert_edge(&g, 0, 3);
 insert_edge(&g, 3, 0);
 insert_edge(&g, 2, 1);
 insert_edge(&g, 1, 3);
 insert_edge(&g, 3, 2);
 bfs_mat(&g, 0);
}

실행은 되지만 이제 30%한거

예문으로 돌린거니까 이제 사용자가 그래프 직접 입력하게 바꾸고

인접리스트 구현하고

간선과 차수 구하는 함수 만들어 넣어야 되는디 언제 합니까(물어보는거 아님) 내일 1교시인데ㅠㅠ

교수 개객기 왜 2일안에 해오라고 과제를 바꿔버린겨 ㅡㅡ 하루종일 집안에 일있어서 올라갔다 오느냐고 이제서야 건드리네

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 탈모 걱정 없어 보이는 머리숱 금수저 스타는? 운영자 25/07/14 - -
277956 내일은 월급날 !!!!!!!!!!!! [3] 좋은아버지갤로그로 이동합니다. 11.10.04 92 0
277955 할말이 없다 [2] 일광면(119.198) 11.10.04 70 0
277954 호스팅서버에 데몬등록할 방법이있나염 [1] ㅂㅈㄷ(210.178) 11.10.04 48 0
277953 '사용자가 컴퓨터를 실제로 사용중이다'라는 인식을 어떻게하면 좋을까? [14] ㅇㅇㅇ(121.144) 11.10.04 175 0
277952 문신 이렇게 하면.. [2] iljeomobolt갤로그로 이동합니다. 11.10.04 95 0
277951 도촬 대 실패 ㅠㅠ [3] [성대아싸]갤로그로 이동합니다. 11.10.04 117 0
277950 거칠게 형은 봅니다!! [4] 막장갤신학생갤로그로 이동합니다. 11.10.04 60 0
277949 아 퇴근 30분 남은 지금 엄청 졸리다 [3] 좋은아버지갤로그로 이동합니다. 11.10.04 55 0
277947 대체 화면 좌측, 상단에 줄자표시는 어떻게하는거지? [3] +어게인갤로그로 이동합니다. 11.10.04 60 0
277945 아나 레알 빡친다 이것좀 봐바 [2] 돌아이바갤로그로 이동합니다. 11.10.04 70 0
277944 형들 자바스크립트 막 배우려는 꼬꼬마가 작은 질문 하나만 ㅠ [1] ㄷㄹㄷㅁㅍ갤로그로 이동합니다. 11.10.04 49 0
277943 정보보안전문가가 꿈인데요 [4] 치타몽갤로그로 이동합니다. 11.10.04 117 0
277942 비주얼베이직에서 16진수 -> 10진수로 바꾸는방법없을까요? [3] uxp갤로그로 이동합니다. 11.10.04 138 0
277941 니들 솔찍히 잘생겼다고 생각하냐?? [5] 개쉛기갤로그로 이동합니다. 11.10.04 167 0
277940 된장녀들은 뭔가 특별한걸 좋아하니깐 이리 만들어볼려구 [4] 거칠게갤로그로 이동합니다. 11.10.04 100 0
277939 형들 윈도우7 64비트 최대 메모리가 몇인가요? uTurn갤로그로 이동합니다. 11.10.04 102 0
277938 리눅스 막 시작한 사람인데 궁금한거 질문점 33(118.34) 11.10.04 44 0
277937 lte가 뭐냐 [1] 찌르매미(203.229) 11.10.04 70 0
277936 책을쓰는중인데.. 좀 물어볼게 형들 [14] 킴구글갤로그로 이동합니다. 11.10.04 122 0
277933 된장녀들은 언플에 약하니깐 우리도 언플 좀 하자 [9] 거칠게갤로그로 이동합니다. 11.10.04 98 0
277932 여기가 패갤은 아니지만 이런 스타일 어떰? [8] Kanon갤로그로 이동합니다. 11.10.04 104 0
277931 그러면 우리나라 it 업계 회사에서 [5] 좋은아버지갤로그로 이동합니다. 11.10.04 183 0
277930 여자들은 세일에 환장하는거 같더라. [2] 거칠게갤로그로 이동합니다. 11.10.04 57 0
277929 좋은 하도급이다 [1] !@#ㅇㅇ(211.238) 11.10.04 44 0
277928 운영체제 공부블로그 추천점 [4] 三didas갤로그로 이동합니다. 11.10.04 97 0
277927 아울렛이랑 백화점이랑 파는옷이 다름 [1] abbey road갤로그로 이동합니다. 11.10.04 94 0
277926 아니 ㅅㅂ 프로그램책들은 [6] 찌르매미(203.229) 11.10.04 85 0
277924 이승만 초대 대통령을 비난하는 이유가 뭔지 모르겠다 ㅅㅂ 병쉬 좌빨 [14] lol(110.174) 11.10.04 135 0
277923 궁금한거 있는데 회사에서 오픈소스를 내자나? [4] 좋은아버지갤로그로 이동합니다. 11.10.04 90 0
277922 직원수 [6] 3(116.42) 11.10.04 175 0
277920 > 아이폰 플밍 잘아는 갤러있나요 Verdana갤로그로 이동합니다. 11.10.04 29 0
277918 형들 그림판에서 위랑 왼쪽에있는 눈금자를 뭐라고 검색해야해? [2] +어게인갤로그로 이동합니다. 11.10.04 72 0
277917 아니 lte 이런거 말고 그냥 전부 wifi 지역으로 만들어 버림 되잖아 [17] 쿄스케갤로그로 이동합니다. 11.10.04 143 0
277916 월급이 밀렸을 때 대처법 [3] 거칠게갤로그로 이동합니다. 11.10.04 191 0
277915 왁스 하는 법 알려준다 ㅋㅋㅋ 바보 프갤들 [14] 좋은아버지갤로그로 이동합니다. 11.10.04 184 0
277914 너님들 일할 때 성향이 어떰? [6] Kanon갤로그로 이동합니다. 11.10.04 100 0
277913 LTE가 빠르냐 와이파이가 빠르냐?? [4] 거칠게갤로그로 이동합니다. 11.10.04 90 0
277911 주6일, 격주6일 근무가 아닐경우 고려할 점 [1] 개쉛기갤로그로 이동합니다. 11.10.04 154 0
277909 사장이 직원들에게 개발자 20명 데려오라고 명령했데 [4] 거칠게갤로그로 이동합니다. 11.10.04 104 0
277906 요즘 개발자가 부족하긴 한가벼 [4] 거칠게갤로그로 이동합니다. 11.10.04 143 0
277905 월급 밀리는 회사를 왜 다녀?? [8] 거칠게갤로그로 이동합니다. 11.10.04 267 0
277904 헉헉 검정 스타킹 여자들이 돌아다닌다 [3] 거칠게갤로그로 이동합니다. 11.10.04 180 0
277903 자유로운 영혼 프겔러들 헤어 스타일 질문좀 하자 [5] Kanon갤로그로 이동합니다. 11.10.04 81 0
277901 월급은 2달째 밀리고 [13] !@#ㅇㅇ(211.238) 11.10.04 146 0
277900 좋은 아버지 왠지 [1] 로하로하알로하갤로그로 이동합니다. 11.10.04 49 0
277899 컴터에미1친고졸입갤 [4] ㅇㅇㅇㅇㅇ(58.127) 11.10.04 75 0
277898 솔직히 아스는 필요없지않나? Adelposs갤로그로 이동합니다. 11.10.04 56 0
277896 늅늅커리큘럼이맘에안들어여 즐쿰갤로그로 이동합니다. 11.10.04 29 0
277894 아오 obj c... [1] !@#ㅇㅇ(211.238) 11.10.04 56 0
277893 형님들 도와주셈 막 프로그래밍계에 입문한 늅 [3] 주식회사인텔(76.87) 11.10.04 94 0
뉴스 BTS 제이홉, ‘롤라팔루자 베를린 2025’ 피날레 장식…전 세계 6만 관중 열광 디시트렌드 07.18
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2