반응형
참고자료
2020/04/28 - [자료구조] - C언어 자료구조(심화 연결리스트 Linked_list 파일읽어서 정렬하기)
개요
위의 파일에 이어서 이번에는 txt 파일에서 읽어온 데이터를 통해 연결 리스트를 만들었는데 이번에는
그 만들어 놓은 연결리스트에 데이터를 삽입하고 삽입하자마자 정렬되도록 하는 과정을 알아보도록
하겠습니다.
insert_node 함수
node* insert_node(node* head, char* name, int sno, float gpa, char* phone, char* province) {
node* front, * new, * temp;
new = malloc(sizeof(node));
front = head;
strcpy(new->name, name);
new->sno = sno;
new->gpa = gpa;
strcpy(new->phone, phone);
strcpy(new->province, province);
temp = new;
while (front != NULL) {
if (strcmp(name, front->name) < 0)
break;
temp = front;
front = front->link;
}
if (temp == new) {
new->link = front;
front = new;
}
else {
new->link = temp->link;
temp->link = new;
front = head;
}
return front;
}
main 함수
while (1) {
system("cls");
i = 0;
curnode = head; //Reading file is finished.
while (curnode)
{
printf("%s %d %.1f %s %s\n", curnode->name, curnode->sno, curnode->gpa, curnode->phone, curnode->province);
curnode = curnode->link;
} //Do it while curnode is not NULL
printf("Type command> ");
gets(input); //get string from user's keyboard
//cut string by each 'space' and save as separated data
token = strtok(input, " ");
do {
strcpy(data[i], token);
i++;
} while (token = strtok(NULL, " "));
//execute each command and change data type of each data
if (!strcmp(data[0], "IS")) {
strcpy(in_name[0], data[1]);
in_sno = atoi(data[2]);
in_gpa = atof(data[3]);
strcpy(in_phone, data[4]);
strcpy(in_province, data[5]);
head = insert_node(head, in_name[0], in_sno, in_gpa, in_phone, in_province);
}
다음번에는 여러가지 조건으로 검색하는 과정을 알아보도록 하겠습니다.
반응형
'알고리즘 & 자료구조 > 자료구조' 카테고리의 다른 글
C언어 자료구조(심화 연결리스트 Linked_list 완성본) (0) | 2020.05.03 |
---|---|
C언어 자료구조 (심화 연결리스트 Linked_list 데이터 검색, 삭제) (0) | 2020.04.30 |
C언어 자료구조(심화 연결리스트 Linked_list 파일읽어서 정렬하기) (0) | 2020.04.28 |
자료구조 C언어 (Recursion 함수 와 동적할당) (0) | 2020.04.15 |
자료구조 (이진트리 Binary Tree 순회 , 이진순회) (0) | 2019.12.02 |