Example #1
0
void Kmeans_ReplaceCenter(Node** ClusterList, Node** CandidateList, Node* candidateNode){
	//클러스터 값, 즉 초기 중심 센터 값을 현재 후보 카테고리에 삽입된 클러스터와 교체)
	//Current는 Cluster에 다시 넣고, candidateNode가 CandidateList(Sample)에 삽입 된다.
	//클러스터의 중심 값이 후보 리스트에 다시 등록되고
	//후보 리스트에서 선출된 노드를 후보 리스트에서 뽑아낸다.
	Node* pClusterList = *ClusterList;

	SLL_AppendNode(ClusterList, candidateNode);
	SLL_RemoveNode(CandidateList, candidateNode);
	candidateNode->NextNode = NULL;
	SLL_AppendNode(CandidateList, pClusterList);
	SLL_RemoveNode(ClusterList, pClusterList);
	pClusterList->NextNode = NULL;

}
Example #2
0
void Kmeans_TransferNode(Node** List, Node** List2, Node* TransferNode){
	//Node* pList1 = *List;
	//Node* pList2 = *List2;

	SLL_RemoveNode(List, TransferNode);
	TransferNode->NextNode = NULL;
	SLL_AppendNode(List2, TransferNode);
}
Example #3
0
int main(void) {

	int i = 0;
	int Count = 0;
	Node* List = NULL;
	Node* Current = NULL;
	Node* NewNode = NULL;

	for (i = 0; i<5; i++) {
		NewNode = SLL_CreateNode(i);
		SLL_AppendNode(&List, NewNode);
	}

	NewNode = SLL_CreateNode(-1);
	SLL_InsertNewHead(&List, NewNode);
	NewNode = SLL_CreateNode(-2);
	SLL_InsertNewHead(&List, NewNode);

	Count = SLL_GetNodeCount(List);
	for (i = 0; i < Count; i++) {
		Current = SLL_GetNodeAt(List,i);
		printf("List[%d] : %d\n", i,Current->Data);
	}

	printf("\nInserting 3000 after [2]...\n\n");

	Current = SLL_GetNodeAt(List,2);
	NewNode = SLL_CreateNode(3000);

	SLL_InsertAfter(Current,NewNode);

	Count = SLL_GetNodeCount(List);
	for (i = 0 ; i < Count ; i++) {
		Current = SLL_GetNodeAt(List,i);
		printf("List[%d] : %d\n", i,Current->Data);
	}

	printf("\nDestorying List...\n");

	for (i = 0; i < Count ; i++) {
		Current = SLL_GetNodeAt(List,0);

		if (Current != NULL) {
			SLL_RemoveNode(&List,Current);
			SLL_DestroyNode(Current);
		}
	}
}
Example #4
0
void Kmeans_ReadVector(Node** Sample, FILE *fp){
	
	char s[MAX_COLS] ;
	char seps[] = "(), |\t\n";
	char *token;
	double data[MAX_DIMENSION];

	while(fgets(s, MAX_COLS, fp) != NULL){

		token = strtok(s, seps);

		while(token != NULL){
			for(int i = 0 ; i < MAX_DIMENSION ; i ++){
				data[i] = atof(token);
				token = strtok(NULL, seps);
			}
			SLL_AppendNode(Sample, Kmeans_CreateNode(data));
		}
	
	}
	fclose(fp);
}