Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linked List (extra) Lecturer : Kritawan Siriboon, Room no. 913

Similar presentations


Presentation on theme: "Linked List (extra) Lecturer : Kritawan Siriboon, Room no. 913"— Presentation transcript:

1 Linked List (extra) Lecturer : Kritawan Siriboon, Room no. 913
Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley

2 Linked Array Implementation
List : ABCDEFG Create Available List (Stack) node n[8]; int avail = 0; avail = 1 2 3 4 5 6 7 -1 2 3 5 4 -1 6 7 1 avail =

3 Using avialable node from avail stack.
Returning avialable node to avail stack. 2 3 5 4 -1 6 7 1 av= 2 3 6 4 -1 7 1 av= 2 3 5 4 -1 6 7 1 av= 2 3 5 4 -1 6 7 1 av= av= 2 3 5 4 -1 6 7 1 take out another node take out another node return node 2 first take out 1st node

4 getnode() node n[8]; int avail = 0; int h = getnode(d,nx)
old_av = avail = 2 3 5 4 -1 6 7 1 A A -1 -1 int h = getnode(d,nx) h = old_av= avail; avail = n[avail].next ; n[old_av].data = d; n[old_av].next = nx; return old_av; 3 5 4 -1 6 7 1 av= A -1 h = results

5 insertafter() p h X q insertafter(p,d); int q = getnode(d,n[p].next);
C 3 -1 h = A 5 insertafter(p,d); D 7 int q = getnode(d,n[p].next); n[p].next = q; q = av = X 6 p = B 4 1 h= av= p= q= 3 -1 5 7 4 1 -1 C A D X B E E -1 results node n[8];

6 deleteafter() int i = delteafter(p); results p C 3 q = C 3 h -1 q h =
5 D 7 int i = delteafter(p); av = 6 int q = n[p].next; n[p].next = n[q].next; p = B 3 1 h= av= p= q= 3 -1 5 7 6 3 1 -1 C A D B E E -1 results

7 Application : Multilists
1. class หนึ่งๆ มีใครลงบ้าง นร. คนหนึ่งๆ ลง class ใดบ้าง C1 C2 C3 C4 s s s s s5 1 2 3 s1 c1 s3 c1 s3 c2 s5 c2 s3 c3 s4 c3 s1 c3 s2 c4 s4 c4

8 Application : Radix Sort
input: 64 8 216 512 27 729 1 343 125 64 8 216 512 27 729 1 343 125 64 8 216 512 27 729 1 343 125 output:


Download ppt "Linked List (extra) Lecturer : Kritawan Siriboon, Room no. 913"

Similar presentations


Ads by Google