Date post: | 04-Apr-2018 |
Category: |
Documents |
Upload: | anon452802055 |
View: | 216 times |
Download: | 0 times |
of 24
7/31/2019 02 Review Struktur Data
1/24
02 Review Struktur Data
Kuliah PAAL 2012
Kelas C dan F
7/31/2019 02 Review Struktur Data
2/24
2
Fundamental Data Structures
Linear data structures
Stacks, queues, and heaps
Graphs Trees
Sets
Dictionaries
7/31/2019 02 Review Struktur Data
3/24
3
Linear Data Structures
Arrays A sequence ofn items of the same
data type that are stored contiguouslyin computer memory and madeaccessible by specifying a value of thearrays index.
Linked List A sequence of zero or more nodes
each containing two kinds ofinformation: some data and one ormore links called pointers to othernodes of the linked list.
Singly linked list (next pointer)
Doubly linked list (next + previouspointers)
Arrays
fixed length (need preliminary
reservation of memory)
contiguous memory locations
direct access
Insert/delete
Linked Lists
dynamic length
arbitrary memory locations
access by following links
Insert/delete
7/31/2019 02 Review Struktur Data
4/24
4
Stacks, Queues, and Heaps (1)
Stacks A stack of plates
insertion/deletion can be done only at the top.
LIFO
Two operations (push and pop)
Queues
A queue of customers waiting for services
Insertion/enqueue from the rear and deletion/dequeue from the
front.
FIFO
Two operations (enqueue and dequeue)
7/31/2019 02 Review Struktur Data
5/24
5
Stacks, Queues, and Heaps (2)
Priority queues (implemented using heaps)
A data structure for maintaining a set of elements, each associated with akey/priority, with the following operations
Finding the element with the highest priority
Deleting the element with the highest priority
Inserting a new element
Scheduling jobs on a shared computer.
Which of the following tree is a heap?
7/31/2019 02 Review Struktur Data
6/24
6
Graphs
Formal definition A graph G = is defined by a pair of two sets: a finite
set V of items called vertices and a set E of vertex pairscalled edges.
Undirected and directed graphs (digraph).
Complete, dense, and sparse graph A graph with every pair of its vertices connected by an
edge is called complete. K|V|
A graph with relatively few possible edges missing is calleddense.
A graph with few edges relative to the number of itsvertices is called sparse.
7/31/2019 02 Review Struktur Data
7/24
7
Graph Representation
Adjacency matrix
n x n boolean matrix if |V| is n.
The element on the ith row and jth column is 1 if theres an edge
from ith vertex to the jth vertex; otherwise 0. The adjacency matrix of an undirected graph is symmetric.
Adjacency linked lists
A collection of linked lists, one for each vertex, that contain all the
vertices adjacent to the lists vertex.
7/31/2019 02 Review Struktur Data
8/24
8
Weighted Graphs
Weighted graphs
Graphs or digraphs with numbers assigned to the
edges.
7/31/2019 02 Review Struktur Data
9/24
9
Graph Properties -- Paths and Connectivity
Paths
A path from vertex u to v of a graph G is defined as a sequence ofadjacent (connected by an edge) vertices that starts with u andends with v.
Simple paths: All edges of a path are distinct.
Path lengths: the number of edges, or the number of vertices 1.
Connected graphs
A graph is said to be connected if for every pair of its vertices u
and v there is a path from u to v.
Connected component
The maximum connected subgraph of a given graph.
7/31/2019 02 Review Struktur Data
10/24
10
Graph Properties -- Acyclicity
Cycle
A simple path of a positive length that starts
and ends a the same vertex. Acyclic graph
A graph without cycles
DAG (Directed Acyclic Graph)
7/31/2019 02 Review Struktur Data
11/24
11
Trees (I)
Trees A tree (or free tree) is a connected acyclic graph.
Forests: a graph that has no cycles but is not necessarilyconnected.
Properties of trees
For every two vertices in a tree there always exists exactlyone simple path from one of these vertices to the other.Why?
Rooted trees:The above property makes it possible to select anarbitrary vertex in a free tree and consider it as the root of the so-called rooted tree.
Levels of rooted tree.
|E| = |V| - 1
7/31/2019 02 Review Struktur Data
12/24
12
Trees (II)
ancestors For any vertex vin a tree T, all the vertices on the simple path from the root to
that vertex are called ancestors.
descendants
All the vertices for which a vertex vis an ancestor are said to be descendants of
v.
parent, child and siblings
If(u, v) is the last edge of the simple path from the root to vertex v(and u v),u is said to be the parent ofvand vis called a child ofu.
Vertices that have the same parent are called siblings.
Leaves
A vertex without children is called a leaf.
Subtree
A vertex vwith all its descendants is called the subtree ofTrooted at v.
7/31/2019 02 Review Struktur Data
13/24
13
Trees (III)
Depth of a vertex
The length of the simple path from the root to the
vertex.
Height of a tree
The length of the longest simple path from the root to
a leaf.
7/31/2019 02 Review Struktur Data
14/24
14
Ordered Trees
Ordered trees An ordered tree is a rooted tree in which all the children of each vertex
are ordered.
Binary trees A binary tree is an ordered tree in which every vertex has no more than
two children and each children is designated s either a left child or aright child of its parent.
Binary search trees Each vertex is assigned a number.
A number assigned to each parental vertex is larger than all thenumbers in its left subtree and smaller than all the numbers in its rightsubtree.
log2n h n 1, where h is the height of a binary tree.
7/31/2019 02 Review Struktur Data
15/24
7/31/2019 02 Review Struktur Data
16/24
7/31/2019 02 Review Struktur Data
17/24
7/31/2019 02 Review Struktur Data
18/24
7/31/2019 02 Review Struktur Data
19/24
7/31/2019 02 Review Struktur Data
20/24
7/31/2019 02 Review Struktur Data
21/24
7/31/2019 02 Review Struktur Data
22/24
7/31/2019 02 Review Struktur Data
23/24
7/31/2019 02 Review Struktur Data
24/24
Conclusion
Data structures are just another set of tools that should be in the kitof a seasoned programmer.
Comprehensive libraries and frameworks available with mostlanguages nowadays preempt the need for a full understanding of howto implement each of these tools.
The result is that developers are able to quickly produce qualitysolutions that take advantage of powerful ideas.
The challenge lies in knowing which one to select.
Nonetheless, knowing a little about how these tools work should helpto make the choices easier.
And, when the need arises, perhaps leave the programmer better
equipped to think up a new solution to a new problem; if not while onthe job doing work for a client, then perhaps while contemplating the1000 point problem 45 minutes into the coding phase of the next SRM(single round matches, used in TopCoder competition).