Example #1
0
int main(){
	List list;
	NameCard* pcard;
	NameCard chPhone;

	ListInit(&list);

	pcard = MakeNameCard("Phantom", "010-1111-2222");
	LInsert(&list, pcard);

	pcard = MakeNameCard("HeadFish", "010-2222-3333");
	LInsert(&list, pcard);

	pcard = MakeNameCard("Mathboy", "010-3333-4444");
	LInsert(&list, pcard);

	printf("Present Data Count : %d\n", LCount(&list));

	if(LFirst(&list, &pcard)){
		ShowNameCardInfo(pcard);

		while(LNext(&list, &pcard))
			ShowNameCardInfo(pcard);
	}

	printf("\n\n");

	strcpy(chPhone.name, "Mathboy");
	strcpy(chPhone.phone, "010-3333-4444");

	if(LFirst(&list, &pcard)){
		if(NameCompare(pcard, "Mathboy")==1){
			ChangePhoneNum(pcard, "010-7777-8888");
		}

		while(LNext(&list, &pcard)){
			if(NameCompare(pcard, "Mathboy")==1){
				ChangePhoneNum(pcard, "010-7777-8888");
			}
		}
	}

	printf("Present Data Count : %d\n", LCount(&list));

	if(LFirst(&list, &pcard)){
		ShowNameCardInfo(pcard);

		while(LNext(&list, &pcard))
			ShowNameCardInfo(pcard);
	}

	printf("\n\n");

	if(LFirst(&list, &pcard)){
		if(NameCompare(pcard, "Mathboy")==1){
			pcard = LRemove(&list);
			free(pcard);
		}

		while(LNext(&list, &pcard)){
			if(NameCompare(pcard, "Mathboy")==1){
				pcard = LRemove(&list);
				free(pcard);
			}
		}
	}
	if(LFirst(&list, &pcard)){
		ShowNameCardInfo(pcard);

		while(LNext(&list, &pcard))
			ShowNameCardInfo(pcard);
	}

	printf("\n\n");
	printf("Present Data Count : %d\n", LCount(&list));

	return 0;
}
Example #2
0
int main()
{
	List list;
	NameCard *newCard;
	int i;
	ListInit(&list);

	//1. 3명의 전화번호 정보를, 앞서 우리가 구현한 리스트에 저장한다.
	newCard = MakeNameCard("조현일","01065429759");
	LInsert(&list,newCard);
	newCard = MakeNameCard("김민서","01044450324");
	LInsert(&list,newCard);
	newCard = MakeNameCard("김태윤","01088350650");
	LInsert(&list,newCard);

	
	//2. 특정 이름을 대상으로 탐색을 진행하여, 그 사람의 정보를 출력한다.
	puts("=======[조현일]을 대상으로 탐색=======\n");

	if(LFirst(&list,&newCard)){
		if(!NameCompare(newCard,"조현일"))
			ShowNameCardInfo(newCard);
		while(LNext(&list,&newCard))
			if(!NameCompare(newCard,"조현일"))
				ShowNameCardInfo(newCard);
	}

	//3. 특정 이름을 대상으로 탐색을 진행하여, 그 사람의 전화번호 정보를 변경한다.

	puts("=======[김태윤]를 대상으로 탐색=======\n");

	if(LFirst(&list,&newCard)){
		if(!NameCompare(newCard,"김태윤"))
			ChangePhone(newCard,"01044449999");
		while(LNext(&list,&newCard))
			if(!NameCompare(newCard,"김태윤"))
				ChangePhone(newCard,"01044449999");

		puts("전화번호를 01044449999로 변경완료!\n");
	}


	//4. 특정 이름을 대상으로 탐색을 진행하여, 그 사람의 정보를 삭제한다.

	puts("=======[김민서]를 대상으로 탐색=======\n");

	if(LFirst(&list,&newCard)){
		if(!NameCompare(newCard,"김민서"))
			LRemove(&list);
		while(LNext(&list,&newCard))
			if(!NameCompare(newCard,"김민서"))
				LRemove(&list);

		puts("데이터 삭제완료!\n");
	}
	
	//5. 끝으로 남아있는 모든 사람의 전화번호 정보를 출력한다.

	puts("---남아있는 모든 사람의 전화번호 출력----\n");
	
	if(LFirst(&list,&newCard)){
		ShowNameCardInfo(newCard);

		while(LNext(&list,&newCard))
		ShowNameCardInfo(newCard);
	}

	return 0;
}