1 / 35

Chapter 1

Chapter 1. Basic Concepts. Objectives . Use pseudocode in the development of algorithms Understand the need for Abstract Data Type (ADT) Understand the implementation of ADTs Use void pointers and pointer to functions Understand the role of Big-O notation. Pseudocode.

amma
Download Presentation

Chapter 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1 Basic Concepts Objectives • Use pseudocode in the development of algorithms • Understand the need for Abstract Data Type (ADT) • Understand the implementation of ADTs • Use void pointers and pointer to functions • Understand the role of Big-O notation Data Structures: A Pseudocode Approach with C, Second Edition

  2. Pseudocode Pseudocode is an English-like representation of the algorithm logic. It consists of an extended version of the basic algorithmic constructs: sequence, selection, and iteration. • Algorithm Header • Purpose, Condition, and Return • Statement Numbers • Variables • Statment Constructs • Algorithm Analysis Data Structures: A Pseudocode Approach with C, Second Edition

  3. Data Structures: A Pseudocode Approach with C, Second Edition

  4. Data Structures: A Pseudocode Approach with C, Second Edition

  5. The Abstract Data Type An ADT consists of a data declaration packaged together with the operations that are meaningful on the data while embodying the structured principles of encapsulation and data hiding. In this section we define the basic parts of an ADT. • Atomic and Composite Data • Data Type • Data Structure • Abstract Data Type Data Structures: A Pseudocode Approach with C, Second Edition

  6. Data Structures: A Pseudocode Approach with C, Second Edition

  7. Data Structure • Aggregation of atomic and composite data into a set with defined relationships. Structure refers to a set of rules that hold the data together. • A combination of elements in which each is either a data type or another data structure. • A set of associations of relationship involving combined elements. • Example: Data Structures: A Pseudocode Approach with C, Second Edition

  8. Data Structures: A Pseudocode Approach with C, Second Edition

  9. ADT users are NOT concerned with how the task is done but rather what it can do. An abstract data type is a data declaration packaged together with the operations that are meaningful for thedata type. We encapsulate the data and the operations on the data, and then hide them from the user. All references to and manipulation of the data in a data structure are handled through defined interfaces to the structure. Abstract Data Type Data Structures: A Pseudocode Approach with C, Second Edition

  10. Model for an Abstract Data Type In this section we provide a conceptual model for an Abstract Data Type (ADT). • ADT Operation – passage like • ADT Data Structure – controlled entirely Data Structures: A Pseudocode Approach with C, Second Edition

  11. Data Structures: A Pseudocode Approach with C, Second Edition

  12. ADT Implementations There are two basic structures we can use to implement an ADT list: arrays and linked lists. In this section we discuss the basic linked-list implementation. • Array Implementation • Linked List Implemenation Data Structures: A Pseudocode Approach with C, Second Edition

  13. Data Structures: A Pseudocode Approach with C, Second Edition

  14. Data Structures: A Pseudocode Approach with C, Second Edition

  15. Data Structures: A Pseudocode Approach with C, Second Edition

  16. Generic Code for ADT In this section we discuss and provide examples of two C tools that are required to implement an ADT. • Pointer to Void • Pointer to Function Data Structures: A Pseudocode Approach with C, Second Edition

  17. Data Structures: A Pseudocode Approach with C, Second Edition

  18. Data Structures: A Pseudocode Approach with C, Second Edition

  19. Data Structures: A Pseudocode Approach with C, Second Edition

  20. Data Structures: A Pseudocode Approach with C, Second Edition

  21. (Continued) Data Structures: A Pseudocode Approach with C, Second Edition

  22. Data Structures: A Pseudocode Approach with C, Second Edition

  23. Data Structures: A Pseudocode Approach with C, Second Edition

  24. Data Structures: A Pseudocode Approach with C, Second Edition

  25. Data Structures: A Pseudocode Approach with C, Second Edition

  26. (Continued) Data Structures: A Pseudocode Approach with C, Second Edition

  27. Data Structures: A Pseudocode Approach with C, Second Edition

  28. Data Structures: A Pseudocode Approach with C, Second Edition

  29. Data Structures: A Pseudocode Approach with C, Second Edition

  30. Data Structures: A Pseudocode Approach with C, Second Edition

  31. Data Structures: A Pseudocode Approach with C, Second Edition

  32. Data Structures: A Pseudocode Approach with C, Second Edition

  33. Data Structures: A Pseudocode Approach with C, Second Edition

  34. Data Structures: A Pseudocode Approach with C, Second Edition

  35. Algorithm Efficiency To design and implement algorithms, programmers must have a basic understanding of what constitutes good, efficient algorithms. Linear Loops -Efficiency is a function of the number of intstructions. - Loop update either adds or subtracts. • Logarithmic Loops -The controlling variable is either multiplied or divided in each iteration. - The number of iteration is a function of the multiplier or divisor. • Nested Loops - The number of iterations is the total number which is the product of the number of iterations in the inner loop and number of iterationsin the outer loop. • Big-O Notation -Not concerned with exact measurement of efficiency but with the magnitude. - A dominant factor determines the magnitute. Data Structures: A Pseudocode Approach with C, Second Edition

More Related