19. Summary

The Linked List

Use: Good for holding data in an ordered manner

Feature: Can insert and remove any item (node) from the list

Pointers: Every node has a pointer locating the next node. The last node has a null pointer

Disadvantage: Complicated maintenance of pointers, if all you want is do is to read either the last or first item (node).

Advantage: The most flexible type of linear list

The Stack

Use: Widely use to control program execution of subroutines

Feature: Last-in First out (LIFO) means that only the last item is accessible to the programmer.

Pointers: Only one pointer used, called the stack pointer. It locates the last item in the stack

Disadvantage: Stack overflow and Stack underflow can cause program crash

Advantage: Easy to ensure that items are removed (read) in reverse order

The Queue

Use: Anywhere where resources have to be shared, such as a print queue

Feature: First-in, First-out (FIFO) means that only the first item can be removed (read). Items are added to the back of the queue. The nodes in-between cannot be accessed by the programmer

Pointers: Maintains 2 pointers. One locating the front of the queue, the other locating the back of the queue

Disadvantage: Not as flexible as a general list as only the front of the queue can be read

Advantage: Easy to ensure that items are removed (read) in the order they were entered

The Circular Queue (circular buffer)

Use: Excellent for passing data from one process to another

Feature: Still a First-in, First-Out data structure, like the standard queue but as items are read from the front of the queue, items are added to the rear the queue. Read and Write normally carried out by different processes.

Pointers: Maintains 2 pointers like a standard queue

Disadvantage: Buffer underflow (i.e. empty) can be a problem. The Read and Write processes have to be carefully managed to avoid this.

Advantage: The size of the buffer should be well-defined at the design stage and so can be set for maximum memory efficiency when moving data from one process to another.

The Tree

Use: Excellent for storing, manipulating and searching data records

Features: The tree maintains the relationship between data items in a parent-child-sibling manner.

Pointers: Many, as each node in the tree has to locate its parent, sibling and child nodes

Disadvantage: Over-complicated for maintaining unrelated data items

Advantage: Easy to maintain the relationship between data items

The Binary Tree

Use: Excellent for maintaining sorted and related data items

Features: The parent node in a binary tree only ever has two child nodes, the LEFT and the RIGHT child nodes. The binary tree rule is that all items before the parent is located in the left sub-tree and all items later than the parent is located in the right sub-tree.

Pointers: Many. Each node locates its parent and location of its left and right child nodes (if any)

Advantage: The binary structure and rule makes it simple to add, delete and sort related data items

Disadvantage: Not as flexible as the general tree structure. Over-complicated for maintaining unrelated data items.


     
 

Copyright © www.teach-ict.com