1. LCD 소스
위에 데이터를 보면 DB0~7에 들가는 값을 보면서 안에 네모값만 변경하면서 명령을 실행시킨다.
<결과>
2.Single Linked
head가 현재 'b'를 가르키고 있기때문에 'b'를 바로 지워버리면 'd'를 잃어버린다.
때문에 변수선언을 해야한다. node * temp를 하나 선언한뒤 초기값을 temp=head로 한다.그럼 temp는
head와 같이 'b'를 가르키고 있다.그럼 'b'는 temp가 가르키고 있으니 head는 'd'를 가르킨후 free(temp)
로 'b'지워버린다.이것을 반복적으로 head가 temp보다 앞에 것을 가르키고 있기 때문에[ 0! = head ] 이렇
게 조건을 걸어 반복문을 작성하여 실행시키면 동적할당받은 부분을 다 지워버릴 수 있다.
여기서 head를 이동시키면서 출력을 해도 되는 이유는 여기서 이동하는 head는 printf
의 인자이며 main head를 가지고 있기때문에 printf의 head인자를움직이면서 출력하면 끝!!
2-1) 중간삽입 !! OR 꼬리에 달기!!
1) 연결리스트가 정렬되어 있다는 과정하에 중간부분 및 꼬리에 연결하기
3개의 변수를 선언한다. NEW는 새로운 동적할당을 만들어 중간부분에 삽입할것이고
STPFRONT는 NEW앞에 STPREAR은 NEW 뒤에 연결한다.
일단 처음 변변수들을 정렬을 해준다 두개다 HEAD를 가르키고 있게 한다.
그리고 NEW는 새로 동적할당을 받아 만든다.
여기서 WHILE 문은 삽입위치 즉 연결리스트를 검색하고 있다.
여기서 IF문에 BREAK를 삽입하여 멈추게 한후 그 사이에 NEW를 넣어야한다.
여기서 IF문의 조건을 보면 REAR->DATA > NEW->DATA(아스키 코드라 크기비교가능)
하여 만약 아닐경우 밑에 식 FRONT는 가만히 나두고 REAR만 앞으로 이동시킨다
여기서 IF문이 참이 되면 일단 NEW를 REAR에 걸어주고 FRONT를 NEW를
가르키게 한다.그럼 중간 삽입 끝!!
2)꼬리 삽입도 똑같은 식으로 가능하다.
알파벳만 바꾼다면 가능해진다.여기서 WHILE의 조건문이 끝까지 돌면 결국 REAR은
NULL을 만날수 밖에 없다.그러므로 WHILE문을 빠져나가 밑에 식을 실행하면
NEW의 NEXT는 REAR을 가르키고 REAR은 NULL이기때문에 NEW가 마지막에
붙게 된다.그리고 FRONT는 마지막의 DATA를 가르키고 있다가 NEW를 가르키게
되므로 NEW는 꼬리에 붙게된다
'코스웨어 > 14년 스마트컨트롤러' 카테고리의 다른 글
2014년 4월 25일 양태영 [출석번호 16번] (13) | 2014.04.25 |
---|---|
2014년 4월 24일 송근영 [출석번호 15번] (17) | 2014.04.25 |
2014년 04월 23일 손병규_출석번호 14 (18) | 2014.04.23 |
20140422서상우_수업보고서 (19) | 2014.04.22 |
20140418 문대영 일일보고서[11번] (17) | 2014.04.18 |
2014년 4월 16일 일일업무일지 김해성 [출번 9번] (26) | 2014.04.16 |
2014년 04월 15일 업무일지 김진철[출석번호 : 8번] (19) | 2014.04.15 |
안녕하세요! 13기 임기준입니다. (28) | 2014.04.15 |