int main(void) { // List의 생성 및 초기화 //////////// List list; int data; ListInit(&list); SetSortRule(&list, WhoIsPrecede); // 5개의 데이터 저장 /////////////// LInsert(&list, 11); LInsert(&list, 11); LInsert(&list, 22); LInsert(&list, 22); LInsert(&list, 33); // 저장된 데이터의 전체 출력 //////////// printf("현재 데이터의 수: %d \n", LCount(&list)); if(LFirst(&list, &data)) { printf("%d ", data); while(LNext(&list, &data)) printf("%d ", data); } printf("\n\n"); // 숫자 22을 검색하여 모두 삭제 //////////// if(LFirst(&list, &data)) { if(data == 22) LRemove(&list); while(LNext(&list, &data)) { if(data == 22) LRemove(&list); } } // 삭제 후 저장된 데이터 전체 출력 //////////// printf("현재 데이터의 수: %d \n", LCount(&list)); if(LFirst(&list, &data)) { printf("%d ", data); while(LNext(&list, &data)) printf("%d ", data); } printf("\n\n"); return 0; }
void GraphInit(ALGraph * pg, int nv) { int i; pg->adjList = (List *)malloc(sizeof(List)*nv); pg->numV = nv; pg->numE = 0; for(i=0; i<nv; i++){ ListInit(&(pg->adjList[i])); SetSortRule(&(pg->adjList[i]), WhoIsPrecede); } }
void GraphInitBFS(ALGraphBFS *graph,int nv){ int i=0; graph->numE=0; graph->numV=nv; graph->list=(List*)malloc(sizeof(List)*graph->numV); graph->visit=(int*)malloc(sizeof(int)*graph->numV); memset(graph->visit,0,sizeof(int)*graph->numV); for(i=0;i<graph->numV;i++){ ListDInit(graph); SetSortRule(&(graph->list),WhoIsPrecede); } }
// Initialize the graph void GraphInit(ALGraph* pg, int numOfVertex) { int i; pg->numOfVertex = numOfVertex; pg->numOfEdge = 0; pg->adjList = (List*)malloc(sizeof(List)*numOfVertex); // Integer type array to store visited vertex information pg->visitInfo = (int*)malloc(sizeof(int)*numOfVertex); for(i=0; i < numOfVertex; i++) { ListInit(&(pg->adjList[i])); SetSortRule(&(pg->adjList[i]), WhoIsPrecede); } }