검색어 입력폼
평가점수D

[자료구조 자료구조 ] AOE

등록일 2004.06.25 파일확장자압축파일 (zip) | 1페이지 | 가격 1,000원

소개글

C언어로 작성한 Avtivity On Edge(AOE) 입니다.

earlise time, latest time을 구하고

critical path까지 구해서 출력을 합니다.


========== 과제 요구 사항 ==============
Random directed graph 생성
acyclic
노드 개수 : 10
edge의 duration : random 정수( 0 < duri < 10 )
critical path 찾기
출력
본 TP의 페이지 30과 같이 각 vertex의 earliest과 latest값
critical path
예) V1  V3  V7  V10

목차

총 8파일

AOE.c
AOE.dsp
AOE.dsw
AOE.exe
AOE.ncb
AOE.opt
AOE.plg
과제설명.ppt

본문내용

typedef struct list_node *list_pointer;
typedef struct list_node {
int vertex; // 노드의 값
int duration; // 작업당 걸리는 시간
list_pointer link; // 링크 포인터
};

// 간선(edge)의 생성(노드의 방향과 duration의 생성)
void createEdge(list_pointer *headArrayEarliest, list_pointer *headArrayLatest);

// 이미 존재하는 간선인지 체크한다.
int isExistenceEdge(list_pointer *headArray, int headVertex, int linkVertex);
// 간선의 추가
void insertList(list_pointer *headArray, int headVertex, int linkVertex, int duration);

// 스택에 넣는다.
void stackAdd(int *stack, int *top, int item);
// 스택에서 제거하여 반환한다.
int stackDelete(int *stack, int *top);

// 각 노드별 Earliest Time을 계산한다.
void earliest(int *EarliestTime, list_pointer *headArray);
// 각 노드별 Latest Time을 계산한다.
void latest(int LatestTime[], list_pointer *headArray);
// Critical Path를 출력한다.
void criticalPath(int EarliestTime[], int LatestTime[]);

// 인접리스트를 출력한다.
void printAdjList(list_pointer *headArray);
// Earliest 및 Latest Time을 출력한다.
void printTime(int *pTime);

short int visited[MAX_VERTICES]; // 방문한 노드인가를 체크하기 위한 배열



void main() {
int i;
list_pointer headArrayEarliest[MAX_VERTICES]; // 인접 리스트 헤드 배열
list_pointer headArrayLatest[MAX_VERTICES]; // 역인접 리스트 헤드 배열

int EarliestTime[MAX_VERTICES]; // Earliest 시간을 갖는 배열
int LatestTime[MAX_VERTICES]; // Latest 시간을 갖는 배열

srand((unsigned)time(NULL));

// 배열 초기화
for(i=0; i<MAX_VERTICES; i++) {
headArrayEarliest[i] = (list_pointer) malloc(sizeof(list_pointer));
headArrayEarliest[i]->vertex = i;
headArrayEarliest[i]->duration = 0;
headArrayEarliest[i]->link = NULL;

headArrayLatest[i] = (list_pointer) malloc(sizeof(list_pointer));
headArrayLatest[i]->vertex = i;
headArrayLatest[i]->duration = 0;
headArrayLatest[i]->link = NULL;

EarliestTime[i] = 0;
}

createEdge(headArrayEarliest, headArr<font color=aaaaff>..</font>

참고 자료

없음

압축파일 내 파일목록

AOE.c
AOE.dsp
AOE.dsw
AOE.exe
AOE.ncb
AOE.opt
AOE.plg
과제설명.ppt
다운로드 맨위로