728x90
반응형
| #include <stdio.h> | |
| #include <process.h> | |
| #include <stdlib.h> | |
| typedef struct node | |
| { | |
| char data; | |
| struct node *next; | |
| }NODE; | |
| typedef struct book BOOK; | |
| 구조체 | |
| char의 1바이트와 struct node의4바이트 총 5바이트로 되어 있다. | |
| NODE *insert (char item,NODE *list); | |
| int main() | |
| { | |
| NODE *list = NULL; | |
| char ch; | |
| while('e' != ch) | |
| { | |
| scanf("%c",&ch); | |
| list=insert(ch,list); | |
| } | |
| for(;list->next != NULL;list = list ->next) | |
| { | |
| printf("%c",list->data); | |
| } | |
| free(list); | |
| return 0; | |
| } | |
| 우선 list에 NULL의 주어 초기화 시킨다 | |
| while문의 조건식 ch가 'e'아니면 실행 한다 | |
| ch를 입력받고 insert을 불러들여 ch값과 list를 넘겨준다 | |
| insert()가 끝나면 넘겨받은 값이 ilst에 대입 대고 | |
| for에서 조건식에 만족하지 않을 때까지 실행 | |
| for문이 끝나면 할당받은 메모리를 시스템에 돌려준다. | |
| NODE *insert (char item,NODE *list) | |
| { | |
| NODE *current = NULL; | |
| NODE *follow = NULL; | |
| NODE *newnode = NULL; | |
| current = follow = list; | |
| if((newnode =(NODE *)malloc(sizeof(NODE))) == NULL) | |
| { | |
| printf("NO!!!"); | |
| return list; | |
| } | |
| newnode->data = item; | |
| while((current != NULL) && (current->data < item)) | |
| { | |
| follow = current; | |
| current = current->next; | |
| } | |
| newnode->next = current; | |
| if(current == list) | |
| { | |
| list = newnode; | |
| } | |
| else | |
| { | |
| follow->next = newnode; | |
| } | |
| return list; | |
| } | |
| 연결리스트에 새로운 노드 삽입부 | |
| 노드삽입에는 4가지가 있다 | |
| 1. list를 NULL로 받고 젤 처음 삽입 | |
| 2. list를 NULL로 받지않고 젤 처음 삽입 | |
| 3. 마지막에 삽입 | |
| 4. 중간에 삽입 | |
| |
| main()에서 처음 list가 넘어와 NULL값으로 오기때문에 4가지중 | |
| 1번째에 속한다 | |
| 우선 newnode이 동적할당을 받아 노드가 생성 된다. | |
| 이때 newnode이 NULL이면 list를 리턴한다. | |
| 할당받은 메모리 data부분에 main()에서 넘겨받은 item값을 대입한다 | |
| while문의 조건식은 첫 조건식은 끝부분인지 확인하는 조건식이고 | |
| 2번째 조건식은 입력한 값을 정렬하게 하는 조건식이다 | |
| 이 조건식을 모두 만족하면 연결리스트의 삽입 위치가 이동된다. | |
| newnode->next에 current의 값이 대입 된다 | |
| if문의 조건식은 제일 앞일 경우 실행 시키는 조건식이고 | |
| else는 중간이나 마지막에 해당할 경우 실행시키는 명령문이다. | |
| 이부분이 노드 삽입하는 영역이다 |
728x90
'코스웨어 > 10년 시스템제어' 카테고리의 다른 글
| 11번 박동원 Atmega128 (1) | 2010.04.08 |
|---|---|
| 11번 박동원 네트워크 (1) | 2010.04.08 |
| 시스템 제어 4월6일 10번 문현철 (1) | 2010.04.06 |
| 수업 사진 20100322 (5) | 2010.04.06 |
| 시스템제어 - 4/1 - 7번 김진웅 보고서입니다. (4) | 2010.04.01 |
| 3 / 31 보 고 서 (연결 리스트1) - 6번 김신호 (2) | 2010.03.31 |
| 3 / 31 보 고 서 (연결리스트 2) (1) | 2010.03.31 |
| 소스 인사이트 팁 몇가지^_^ (2) | 2010.03.31 |