... subcategories.
Linear collections can be either direct access collections or sequential access
collections, whereas nonlinear collections can be either hierarchical or
grouped. This section describes each ... GENERICS, AND TIMING CLASS
C
OLLECTIONS
D
EFINED
A collection is a structured data type that stores dataand provides operations
for adding data to the collection, removing data from the collection, ... of a collec-
tion), and IndexOf (for determining the index of a specified element in a
collection).
C
OLLECTIONS
D
ESCRIBED
Within the two major categories of collections are several subcategories.
Linear...
... Stack
Linked Stack
Contiguous Stack
Applications of Stack
1
Linear List Concepts
LIFO
(Stack)
2
Before After
Received data:
Stack remains
unchanged
Basic operation of Stack (Top)
top data
top ... – 1
2. count = count - 1
3. return success
end Pop
29
Linked Stack
a) Conceptual b) Physical
Node
Data <DataType>
link <pointer>
end Node
Stack
top <pointer>
count <integer>
end ... top + 1
2. data[ top] = DataIn
3. count = count + 1
4. return success
end Push
28
Basic operation of Stack (Pop)
Before After
pop data
pop data
(Stack
remains
unchanged)
top
top
a) Successful operation:...
... each goal seeking problem:
Determine what kind of data included in graph (format for nodes and
branches, with or without cost), directed or undirected, cyclic or
acyclic graph.
Determine ... <ObjType>
stackObj <Stack>
stackObj.Create()
(use stackObj in
application’s
algorithm)
stackObj.Clear()
Parsing
<ErrorCode> BracketParse()
Check the brackets are correctly matched or not.
Pre ... Print the results of bracket-matched checking:
(1) Unmatched closing bracket detected.
(2) Unmatched opening bracket detected.
(3) Bad match symbol.
(4) Stack is overflow.
Return failed or success.
Uses...
... Tru
CSE Faculty - HCMUT
Basic Concepts
[17][9][5][1]
A
Insert A, B, C
hash(A) = 9
hash(B) = 9
hash (C) = 17
14
01 December 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Basic Concepts
[17][9][5][1]
BAC
Probing
Searh ... Case)
Sequential
(Average)
BinarySize
• Search complexity:
34
01 December 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Open Addressing
• When a collision occurs, an unoccupied element is
searched for placing the new ... space
33
01 December 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Collision Resolution
• Open addressing
• Linked list resolution
• Bucket hashing
27
01 December 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Pseudorandom
•...
... list
pPre
is pointer data s logical predecessor
Slide 29Faculty of Computer Science and Engineering – HCMUT
pPre
is pointer data s logical predecessor
dataIn contains data to be inserted
Post data have ... Computer Science and Engineering – HCMUT
recycled
After
pPre
-
> link = pLoc
-
> link
recycle (pLoc)
2
count head
list
39 75
pLocpPre
Linked Lists
A linked list is an ordered collection ... of datain which each
element contains the location of the next element
Element = Data + Link
head data link
Slide 7Faculty of Computer Science and Engineering – HCMUT
empty
linked list
Create...
... Subprogram implementation
Recursion
Designing recursive algorithms
Recursion removal
Backtracking
Examples of backtracking and recursive algorithms:
Factorial
Fibonacci
The towers of Hanoi
... number
Uses Recusive function Fibonacci
1. if (n = 0) OR (n = 1) // stopping case
1. return n
2. return ( Fibonacci(n -1)+Fibonacci(n -2) ) // recursive case
End Fibonacci
36
Chapter 6 - Recursion
Subprogram ... Fibonacci Numbers
Algorithm Fibonacci (val n <integer>)
Calculates the n
th
Fibonacci number.
Pre n is the ordinal of the Fibonacci number.
Post returns the n
th
Fibonacci number
Uses Recusive...
... <ErrorCode> InsertHeap (val DataIn <DataType>) // Iterative version
Inserts new data into the min-heap.
Post DataIn has been inserted into the heap and the heap order property
is maintained.
Return ... minimum element in priority queue
<ErrorCode> RetrieveMin (ref MinData <DataType>)
Retrieves the minimum element in the heap.
Post MinData receives the minimum datain the heap and ... Recursive function ReheapUp.
1. count = 0
2. loop (heap is not full) AND (more datain listOfData)
1. listOfData.Retrieve(count, newData)
2. data[ count] = newData
3. ReheapUp( count)
4. count = count...
... Sort
39
Straight Insertion Sort
10
Quick Sort
46
Algorithm QuickSort()
Sorts the contiguous list using quick sort.
Post Sorted list.
Uses function recursiveQuickSort.
1. recursiveQuickSort(0, count -1)
End ... Sort
41
23
Heap Sort
33
Exchange Sort efficiency
43
Shell Sort
16
Sorting
5
Divice -and-
Conquer
•Quick
•Merge
•Bubble
•Quick
•Selection
•Heap
•Insertion
•Shell
•Natural Merge
•Balanced Merge
•Polyphase ... the comparisons, it is better when we can
receive more new information.
• Incremental values should not be multiples of each other,
other wise, the same keys compared on one pass would be
compared...
... 2008
Cao Hoang Tru
CSE Faculty - HCMUT
B-Tree Insertion
Algorithm BTreeInsert (val root <pointer>, val data <record>)
Inserts data into B-tree. Equal keys placed on right branch.
Pre ... November 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Reading
• Pseudo code of algorithms for B-Tree Insertion
4
17 November 2008
Cao Hoang Tru
CSE Faculty - HCMUT
M-Way Node Structure
key data
num
entries
... 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Reflow
• For each node to have sufficient number of
entries:
– Balance: shift data among nodes.
– Combine: join data from nodes.
28
17 November 2008
Cao...
... 1
http://www.ourstillwaters.org/stillwaters/csteaching/DataStructuresAndAlgorithms/preface.htm (3 of 3) [1.7.2001 18:57:42]
Data Structuresand Algorithms: CHAPTER 1: Designand Analysis of Algorithms
i, j, temp: integer;
begin
(1) ...
http://www.ourstillwaters.org/stillwaters/csteaching/DataStructuresAndAlgorithms/mf1202.htm (2 of 40) [1.7.2001 18:58:59]
Data Structuresand Algorithms: Table of Contents
Data Structuresand Algorithms
Alfred V. ... data structures, which are collections of variables, possibly of several different data
types, connected in various ways.
The cell is the basic building block of data structures. We can picture...