Carpe diem  
  Front Page
Notice | Tag | Location | Guestbook | Admin   
 
'단일연결리스트'에 해당하는 글(1)
2007/06/04   Linked-List - 1. 단일 연결 리스트


2007/06/04 10:00 2007/06/04 10:00
Linked-List - 1. 단일 연결 리스트
출처 : http://internet512.chonbuk.ac.kr/datast ··· ist5.htm
(인코딩에 약간의 문제가 있어 그냥 퍼왔습니다.)

선형리스트에서 발생하게 되는 원소들의 이동문제를 해결해주는 방법은 리스트를 구성하는 연속된 순서의 원소들이 기억장소내에서 어느곳에나 저장 가능하도록 원소들의 위치와 무관하게 원소들을 연결하여 표현하는 방법이다.

연결리스트에서는 원소들의 값이외에 포인터값이 포함되므로 리스트의 한원소의 노드(node)는 원소값을 저장하는 자료(data)부분과 다음 원소를 지적하는 포인터값을 저장 하는 링크(link) 부분으로 구성된다.
                   

단일 연결 리스트의 구조


입력, 출력시에 어떠한 변화가 있는지 볼 수 있다.





<예제 1.>

단일 연결 리스트에서 다음과 같은 "리스트의 삽입"이 이루어질 때 비연속적인 리스트로 표현 하시오.

풀이)

주소

1

2

3

4

5

6

7

8

9

10

데이터

김 (*2)

링크

3

10

4  (*1)

5  (*2)

9

1

2

마지막

(*1) - 노드의 삽입으로 인해 변경된 링크 필드값
(*2) - 새로 삽입된 노드

<노드 삽입 알고리즘>

Procedure INSERT_node (Head, Item, X)
   // Head : 연결 리스트의 첫 번째 노드를 가리키는 포인터 //
   // Item : 새로 삽입할 데이터 항목 //
   // X : 임의의 노드를 가리키는 포인터 //

call GETNODE(Y)
   DATA(Y) ← Item
   if (Head=Nil) then
     Head ← Y
     LINK(Y) ← Nil
   else
     LINK(Y) ← LINK(X)
     LINK(X) ← Y
   end INSERT_node

데이터 "항목 C와 F사이에 새로운 "데이터 항목 E"를 삽입하는 과정은 다음과 같다.  이 때, X는 포인터이며 X가 가리키는 노드의 다음 노드에 새로운 노드를 삽입하기 위해 사용된다.

  • 새로운 노드를 생성한 후, 생성된 노드의 주소를 포인터 변수 Y에 대입한다.
  • 생성된 노드에 데이터 항목 E를 대입한다.
  • X가 가리키는 노드의 링크 값을 생성된 노드의 링크 부분에 대입한다.
  • 생성된 노드의 주소를 가리키는 Y값을 X가 가리키는 노드의 링크 부분에 대입한다.

<예제 2.>

단일 연결 리스트에서 다음과 같은 리스트의 삭제가 이루어질 때 비연속적인 리스트로 표현하시오.


주소

1

2

3

4

5

6

7

8

9

10

데이터

삭제

링크

5  (*1)

10

삭제

5

9

1

2

마지막

(* 1) - 노드의 삭제로 인해 변경된 링크 필드값

Procedure DELETE_node (W, X Head)
   // W : 삭제할 노드의 앞 노드를 가리키는 포인터 //
   // X : 삭제할 노드를 가리키는 포인터//
   // Head : 연결 리스트의 첫 번째 노드를 가리키는 포인터//

   if (W=Nil) then  
     Head ← LINK(Head)
   else
     LINK(W) ← LINK(X);
   call RET(X)
end DELETE_node

X가 가리키는 노드를 삭제하는 과정은 다음과 같다.
  이 때, W는 삭제하고자 하는 노드의 앞 노드를 가리킨다.

① X가 가리키는 링크 값을 W가 가리키는 노드의 링크 부분에 대입한다.
      LINK(W)←LINK(X)

② X가 가리키고 있는 노드를 가용 기억공간으로 되돌린다.
      즉 X 노드는 단순 연결 리스트에서 삭제된다.
      call RET(X)


< 단일 연결 리스트의 장단잠>

장    점

단    점

연결리스트의 모든 장점을 가지고 있으며
가장 융통성이 좋다.

대단히 복잡하고 가장 많은 공간이 필요하다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기
Tag : ,


BLOG main image
Passionate, Crazy
 Notice
 Category
전체 (71)
여행 (22)
취미/여가 (8)
지식/공부 (28)
독서/감상 (6)
 TAGS
Excel 카르멘 뷰티넷 날씨 공부 불안 하이버네이트 ELW panda 사전 타이페이역 jsp 911 제거 해석 자바 자작극 더바디샵 부동산 먹거리 코식이 스위스 Dame 나눔 뮤직비디오 해모수 촛불 방글라데시 바탕화면 스타 Widget Anita Roddick objective-C 한글처리 에반게리온 결혼식 레몬펜 멀티캠퍼스 분양 무기력 ELS구로 앨빈 토플러 hibernate 바이트 노력 KTX 나를 태워라 대만 ASP.NET 화장품 한의원려 쿼리문 친구 교육 부산항 MS 어거스트 러쉬 공연 개편 미친소 공감 의미 오타쿠 하고싶은것 로만자 비트 매니아 치한 아기 북카페 태터스킨 pid 괴물 여행준비 낙동강 이벤트 fox 여름휴가 101빌딩 태터 추억 언론 노트북 다이어리 MP3 캐리비안의 해적 월드비전 Spring Framework 뮤지컬 jsxb 일본여행 후지쯔 주몽 주죠역 싸이월드 MFC 휴식 고베
 Calendar
«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
 Recent Entries
[Hibernate] criteria or...
[Hibernate] 중복된 row...
[freemarker] 숫자 콤마 빼기
고베의 일품 야경을 늦게...
간사이 지역 여행 준비하기
object param 값
[FLEX] Renderer를 이용하...
아이폰 SDK - md5
NSString 문자열 길이를 U...
JSP Get 방식 한글 parame... (3)
 Recent Comments
get방식으로 받은 한글이...
데잇 - 2009
당연히 해봤죠 ~ ^^; 여...
euni - 2009
request.setCharacterEnco...
꼼즈 - 2009
궁금하던 정보 잘 얻고 갑...
해피포터 - 2008
나는 언제 성장하는 거냐?
SEAN。 - 2008
받아들이는 관점에 따라...
euni - 2008
성장이 맞는 것 같지만,...
euni - 2008
거럼 뭐가 메카지? ㅋㅋㅋ...
euni - 2008
종합선물세트 아닐까요 ㅎㅎ
ho - 2008
성장만화 아니었습니까?
SEAN。 - 2008
 Recent Trackbacks
 Archive
2011/10
2010/06
2010/03
2009/09
2009/06
 Link Site
소니톤/개발/애니/여행/e-...
지식보다 지혜를...
 Visitor Statistics
Total : 185920
Today : 42
Yesterday : 44
태터툴즈 배너
rss