intersection study - algorithm[list]
TRANSCRIPT
ALGORITHM
ALGORITHM
Array
LIST
Circular
Etc..intro
Pointer
Doubly
ALGORITHM
LIST INTRO
What is List?
LIST INTRO
Sequential
ALGORITHM
학교 게시판 공지사항 리스트
LIST INTRO
ALGORITHM
15773
15772
15771
15770
…
15765
15764
List Model
LIST INTRO
ALGORITHM
15773
제거
15771
15770
…
15765
15764
15773
15771
15770
…
15765
15764
비어 있음
Delete Issue
LIST INTRO
ALGORITHM
Insert Issue
15773
15772
15771
15770
…
15765
15764
15774
15773
15772
15771
…
15765
15764
Insert front
15773
15772
15771
15770
…
15765
15764
15773
15772
15771
15770
…
15766
15765
Insert specific position
LIST INTRO
ALGORITHM
createList
리스트 생성
deleteList
리스트 삭제
isFull
리스트의 여유 공간이 있는가?
addElement
리스트 내 특정 위치에 원소 추가
removeElement
리스트 내 특정 위치의 원소 제거
clearList
리스트 내 모든 원소 제거
getListLength
리스트 내 원소의 수
getElement
리스트 내 특정 위치의 원소
Total Issue
LIST INTRO
ALGORITHM
1 2 3 4
Two Kinds of List
1 2 3 4 5
0 1 2 3 4
6
5
LIST INTRO
ALGORITHM
Array List
1 2 3 4 5
0 1 2 3 4
6
5
LIST ARRAY LIST
ALGORITHM
최대 원소 개수(maxElementCount)
현재 원소 개수(CurrentElementCount)
원소 배열 포인터(pElement)
ArrayList
data data data data …
0 1 2 3 …
data
(maxElementCount – 1)
원소(data)
ArrayListNode
Two Structures
LIST ARRAY LIST
ALGORITHM
data data … data
0 1 …
curElementCount – 1
원소 추가 가능
Insert Range
LIST ARRAY LIST
ALGORITHM
Push and Insert
LIST ARRAY LIST
data 1 2 3 4
curElementCount – 1
position position + 1
ALGORITHM
Push and Insert
LIST ARRAY LIST
data 1 2 3 4 4
curElementCount – 1
position position + 1
ALGORITHM
Push and Insert
LIST ARRAY LIST
data 1 2 3 3 4
curElementCount – 1
position position + 1
ALGORITHM
Push and Insert
LIST ARRAY LIST
data 1 2 2 3 4
curElementCount – 1
position position + 1
ALGORITHM
Push and Insert
LIST ARRAY LIST
data 1 1 2 3 4
curElementCount – 1
position position + 1
ALGORITHM
Push and Insert
LIST ARRAY LIST
data 1 1 2 3 4
new
curElementCount – 1
ALGORITHM
Delete and Pull
LIST ARRAY LIST
data 0 1 2 3 4
1 curElementCount – 1
position position + 1
ALGORITHM
Delete and Pull
LIST ARRAY LIST
data 0 2 2 3 4
curElementCount – 1
position position + 1
ALGORITHM
1
Delete and Pull
LIST ARRAY LIST
data 0 2 3 3 4
curElementCount – 1
position position + 1
ALGORITHM
1
Delete and Pull
LIST ARRAY LIST
data 0 2 3 4 4
curElementCount – 1
position position + 1
ALGORITHM
1
Delete and Pull
LIST ARRAY LIST
data 0 2 3 4
curElementCount – 1
position position + 1
ALGORITHM
1
Delete and Pull
LIST ARRAY LIST
data 0 2 3 4
curElementCount – 1
position position + 1
ALGORITHM
1
return
Linked List
1 2 3 4
LIST LINKED LIST
ALGORITHM
LIST LINKED LIST
Linked List Node
자료(Data) 링크(Link)
ALGORITHM
Various Linked List
LIST LINKED LIST
Linked List
Circular List
Doubly Linked List
ALGORITHM
Linked List
LIST LINKED LIST
Linked List
ALGORITHM
Two Structures
LIST LINKED LIST
현재 원소 개수(CurrentElementCount)
LinkedList
data
pLink
Header Nodedata
pLink
ListNode
ListNode
ALGORITHM
LIST LINKED LIST
Insert Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position
…
data
pLink
newNode
ALGORITHM
LIST LINKED LIST
Insert Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position
…
data
pLink
newNode
ALGORITHM
LIST LINKED LIST
Insert Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position
…
data
pLink
newNode
ALGORITHM
LIST LINKED LIST
Delete Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position+1
…
data
pLink
position
ALGORITHM
LIST LINKED LIST
Delete Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position+1
…
data
pLink
position
ALGORITHM
LIST LINKED LIST
Delete Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position+1
…
data
pLink
position
ALGORITHM
NULL
LIST LINKED LIST
Delete Node
LinkedList
data
pLink
Header Node
data
pLink
position-1
data
pLink
position+1
…
data
pLink
position
ALGORITHM
NULL
return
Circular List
LIST CIRCULAR LIST
Circular List
ALGORITHM
Two Structures
LIST CIRCULAR LIST
현재 원소 개수(CurrentElementCount)
CircularList
pLink
data
pLink
ListNode
data
pLink
ListNode
…
ALGORITHM
Insert Issue
LIST CIRCULAR LIST
Case 1-1 Case 1-2
curElementCount 0?
yes
No
Case 2
First Insert?
yes
No
ALGORITHM
Insert case 1-1
LIST CIRCULAR LIST
CircularList
pLink
NULL
pLink
ListNode
ALGORITHM
Insert case 1-1
LIST CIRCULAR LIST
CircularList
pLink
NULL
pLink
ListNode
ALGORITHM
Insert case 1-1
LIST CIRCULAR LIST
CircularList
pLink
NULL
pLink
ListNode
ALGORITHM
CircularList
pLink
pLink
newNode
pLink
first
pLink
last
…
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
CircularList
pLink
pLink
newNode
pLink
first
pLink
last
…
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
CircularList
pLink
pLink
newNode
pLink
first
pLink
last
…
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
CircularList
pLink
pLink
newNode
pLink
first
pLink
last
…
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
CircularList
pLink
pLink
newNode
pLink
first
pLink
last
…
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
CircularList
pLink pLink
first
pLink
position-1
pLink
position
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
…
pLink
newNode
CircularList
pLink pLink
first
pLink
position-1
pLink
position
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
…
pLink
newNode
CircularList
pLink pLink
first
pLink
position-1
pLink
position
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
…
pLink
newNode
CircularList
pLink pLink
first
pLink
position-1
pLink
position
Insert case 1-2
ALGORITHM
LIST CIRCULAR LIST
…
pLink
newNode
Delete Issue
ALGORITHM
LIST CIRCULAR LIST
Case 1-1 Case 1-2 Case 2
First Node Delete?
curElementCount 1?
yes
yes
No
No
CircularList
pLink
Delete case 1-1
ALGORITHM
LIST CIRCULAR LIST
pLink
ListNode
NULL
CircularList
pLink
Delete case 1-1
ALGORITHM
LIST CIRCULAR LIST
pLink
ListNode
NULL
CircularList
pLink
Delete case 1-1
ALGORITHM
LIST CIRCULAR LIST
pLink
ListNode
NULL
return
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-2
CircularList
pLink pLink
first
pLink
second
pLink
last
…
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-2
CircularList
pLink pLink
first
pLink
second
pLink
last
…
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-2
CircularList
pLink pLink
first
pLink
second
pLink
last
…
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-2
CircularList
pLink pLink
first
pLink
second
pLink
last
…
NULL
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-2
CircularList
pLink pLink
first
pLink
second
pLink
last
…
NULL
return
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-3
CircularList
pLink pLink
position-1
pLink
position
pLink
position+1
……
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-3
CircularList
pLink pLink
position-1
pLink
position
pLink
position+1
……
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-3
CircularList
pLink pLink
position-1
pLink
position
pLink
position+1
……
NULL
ALGORITHM
LIST CIRCULAR LIST
Delete Case 1-3
CircularList
pLink pLink
position-1
pLink
position
pLink
position+1
……
NULL
return
Doubly Linked List
ALGORITHM
LIST Doubly Linked List
Doubly Linked List
Doubly Linked List Node
자료(Data)
오른쪽 링크(Right Link)
왼쪽 링크(Left Link)
ALGORITHM
LIST Doubly Linked List
Doubly Linked List
DoublyList
data
pRLink
Header Node
pLLink
ALGORITHM
LIST Doubly Linked List
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
newNode
Insert Node
pRLink
position
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
newNode
Insert Node
pRLink
position
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
newNode
Insert Node
pRLink
position
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
newNode
Insert Node
pRLink
position
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
newNode
Insert Node
pRLink
position
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
newNode
Insert Node
pRLink
position
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
position
pRLink
position+1
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
Delete Node
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
position
pRLink
position+1
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
Delete Node
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
position
pRLink
position+1
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
Delete Node
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
position
pRLink
position+1
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
Delete Node
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
position
pRLink
position+1
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
Delete Node
NULL
LinkedList
data
pRLink
Header Node
pRLink
position-1
pRLink
position
pRLink
position+1
pLLinkpLLink pLLink
pLLink
ALGORITHM
LIST Doubly Linked List
…
…
pRLink
last
pLLink
…
…
Delete Node
NULL
return
ALGORITHM
LIST END
THANK YOU