Doubly Linked Lists or Twoway Linked Lists 2014
Doubly Linked Lists or Two-way Linked Lists © 2014 Goodrich, Tamassia, Goldwasser Doubly Linked Lists 1
Doubly Linked List (or Two-way Linked List) q q A doubly linked list can be traversed forward and backward Nodes store: n n n q element link to the previous node link to the next node prev next element node Special trailer and header nodes/positions header trailer elements © 2014 Goodrich, Tamassia, Goldwasser Doubly Linked Lists 2
Header and trailer q Make implementation easier n q Every insertion/deletion is between two nodes Can be implemented without them n n Save space Need to consider special cases at the beginning and at the end © 2014 Goodrich, Tamassia, Goldwasser Doubly Linked Lists 3
Insertion q Insert a new node, q, between p and its successor. p A B C p A What are the instructions? © 2014 Goodrich, Tamassia, Goldwasser C X p A q B Doubly Linked Lists X C 4
Deletion q (don’t forget to deallocate the deleted node) Remove a node, p, from a doubly linked list. A B C What are the instructions? A © 2014 Goodrich, Tamassia, Goldwasser B Doubly Linked Lists p D C 5
== (equality) struct Person person 1, person 2; q struct Person *person 3, *person 4; q q What is the difference between n n person 1 == person 2 Person 3 == person 4 © 2014 Goodrich, Tamassia, Goldwasser Doubly Linked Lists 6
- Slides: 6