... 20:59
Preface
The study ofdatastructuresandalgorithms is critical to the development
of the professional programmer. There are many, many books written on
data structuresand algorithms, but these ... practical overview of the data struc-
tures andalgorithms all serious computer programmers need to know and
understand. Given this, there is no formal analysis of the datastructures and
algorithms ... ArrayList, and
Collection classes to the Stack and Queue classes and to the HashTable and
the SortedList classes. The datastructuresandalgorithms student can now see
how to use a data structure...
... node (n is
the size of chess board).
• Ouput may be any solution or all solutions, if exists.
Two of 92 solutions of Eight Queens Problem
36
What kind of data, and which data need to be push ... exists.
32
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
What kind of data, and which data need to be push into the stack?
Priority of operators
Priority of the operators associated from left to right:
Priority ... of cell, no cost.
• Need to mark for visited cell.
• One or more destination.
• Input is one start cell. Ouput is any solution or all solutions if exists.
•
30
What kind of data, and
which data...
... (cont.)
<ErrorCode> Push (val DataIn <DataType>)
Pushes new data into the stack.
Pre DataIn contains data to be pushed.
Post If stack is not full, DataIn has been pushed in;
otherwise, ...
end Pop
Other operations of Stack are similar …
9
Stack ADT
DEFINITION: A Stack of elements of type T is a finite sequence
of elements of T, in which all insertions and deletions are
restricted ... number of elements in the stack.
Variants of similar methods:
ErrorCode Pop (ref DataOut <DataType>)
…
8
Chapter 3 - STACK
Definition of Stack
Specifications for Stack
Implementations of...
... 2008
Cao Hoang Tru
CSE Faculty - HCMUT
Pseudorandom
Pseudorandom
Number Generator
Key
Random
Number
Modulo
Division
Address
y = ax + c
For maximum efficiency, a and c should be prime numbers
40
01 December ... Addressing
• Hash and probe function:
hp: U ×
××
× {0, …, m −
−−
− 1} →
→→
→ {0, …, m − 1}
set of keys
addressesprobe numbers
〈
〈〈
〈hp(k,0), hp(k,1), …, hp(k,m-1)〉
〉〉
〉 is a permutation of 〈
〈〈
〈0, ... HCMUT
Collision Resolution
• A rule of thumb: a hashed list should not be allowed to
become more than 75% full.
Load factor:
α
= (k/n) x 100
n = list size
k = number of filled elements
8
01 December...
... 21Faculty of Computer Science and Engineering – HCMUT
0
count
head
After
list
list.count = 0
Data StructuresandAlgorithms –
C++ Implementation
Ho Chi Minh City University of Technology
Faculty of ... an ordered collection ofdata in 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 ... NULL;
}
Node(
ItemType
data) {
Slide 14Faculty of Computer Science and Engineering – HCMUT
Node(
ItemType
data) {
this-> ;data = data;
this->next = NULL;
}
ItemType data;
Node<ItemType>...
... Recursion
Designing recursive algorithms
Recursion removal
Backtracking
Examples of backtracking and recursive algorithms:
Factorial
Fibonacci
The towers of Hanoi
Eight Queens Problem
... picture and leave the detailed
computations to the computer.
28
Subprogram implementation
5
Print List in Reverse
19
Recursion
14
Tree and Stack frames of function calls
6
Designing Recursive Algorithms
33
The ... RecursiveFactorial
24
17
Print List
17
6 10 14 20
The Towers of Hanoi
45
Thinking of Recursion
Remembering partial computations: computers can easily keep track of
such partial computations with a stack, but...
... (heap is not full) AND (more data in listOfData)
1. listOfData.Retrieve(count, newData)
2. data[ count] = newData
3. ReheapUp( count)
4. count = count + 1
3. if (count < listOfData.Size() )
1. ... Algorithm
35
Build heap
<ErrorCode> BuildHeap (val listOfData <List>)
Builds a heap from data from listOfData.
Pre listOfData contains data need to be inserted into an empty heap.
Post Heap ... Chapter).
23
Build heap
Algorithm BuildHeap2 ()
Builds a heap from an array of random data.
Pre Array of count random data.
Post Array ofdata becames a heap.
Uses Recursive function ReheapDown.
1. position...
... 5
Choosing incremental values
• From more of 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 ... at i >= pivot, i can be increased.
• Otherwise, last_small is increased and two entries at position
last_small and i are swapped:
49
Selection Sort
24
Straight Insertion Sort
12
Sorting
4
31
Straight ... pass would be
compared again at the next.
• The final incremental value must be 1.
19
Example of Shell Sort
18
Shell Sort
15
Selection Sort Efficiency
37
Partition Algorithm
Algorithm:
• Temporarily...
... Trees
• Each node has m - 1 data entries and m subtree
pointers.
• The key values in a subtree such that
:
– >= the key of the left data entry
– < the key of the right data entry.
K
1
K
2
K
3
keys ... Pseudo code ofalgorithms for B-Tree Insertion
4
17 November 2008
Cao Hoang Tru
CSE Faculty - HCMUT
M-Way Node Structure
key data
num
entries
entry
key <key type>
data < ;data type>
rightPtr ... make room.
Pre node is pointer to node to contain data.
newEntry contains data to be inserted.
entryNdx is index to location for new data.
Post data have been inserted in sequence.
1 shifter =...
... possible.
http://www.ourstillwaters.org/stillwaters/csteaching/DataStructuresAndAlgorithms/mf1201.htm (14 of 37) [1.7.2001 18:58:22]
Data Structuresand Algorithms: CHAPTER 1: Design and Analysis of Algorithms
w of newclr and examine the ...
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. Aho, ... var
http://www.ourstillwaters.org/stillwaters/csteaching/DataStructuresAndAlgorithms/mf1201.htm (20 of 37) [1.7.2001 18:58:22]
Data Structuresand Algorithms: CHAPTER 1: Design and Analysis of Algorithms
Fig. 1.3. Table of incompatible...
... study ofdatastructuresand algorithms.
We feel that the central role ofdata structure design and analysis in the curriculum
is fully justified, given the importance of efficient datastructures ... examples ofdata structure and algorithm analysi
s.
• We enhanced consistency with the C++ Standard Template Library (STL).
• We incorporated STL datastructures into many of our data structures.
• ... For example, Dr. Goodrich has taught data structures
andalgorithms courses, including DataStructures as a freshman-sophomore level
course and Introduction to Algorithms as an upper-level course....