+ All Categories
Home > Documents > 02 – Review Struktur Data

02 – Review Struktur Data

Date post: 04-Apr-2018
Category:
Upload: anon452802055
View: 216 times
Download: 0 times
Share this document with a friend

of 24

Transcript
  • 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).


Recommended