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;
}
Пример #2
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);
	}
}
Пример #4
0
// 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);
	}	
}