1 / 6

Understanding ADT Lists: Array and Pointer Implementations in CS 303

This lecture delves into abstract data types (ADT) and their implementations focusing on lists using arrays and pointers. Key operations such as MakeNull, Insert, Delete, and element retrieval are explored. The discussion contrasts the intricacies of single pointer implementations with the efficiency of arrays and cursors. Situations where pointers are not natively supported are addressed by suggesting the use of cursor management for dynamic memory. Various implementations, including doubly linked lists and rings, are examined to understand their practical applications and behaviors within data structures.

austin
Download Presentation

Understanding ADT Lists: Array and Pointer Implementations in CS 303

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. Lists ADT Array Implementation Single Pointer Implemention Cursors Doubly Linked Ring CS 303 –Lists Lecture 4

  2. ADT List - Operations • L = MakeNull() • Insert(L,p,x) Delete(L,p) • p = First(L) p = End(L) • p = Previous(L,p) p = Next(L,p) • p = Locate(L,x) • x = Retrieve(L,p) • x: ElementType • p: PositionType • L: ListType • Why isn’t First(L)always 1? • Because Position is hidden! No arithmetic is allowed (by the user) on • Positions. Use Previous and Next! CS 303 –Lists Lecture 4

  3. Array Implementation 1 2 n MaxLength Last Internal routines can do arithmetic on “positions”, but external (user) routines cannot. Why? CS 303 –Lists Lecture 4

  4. Single Pointer Implementation • L ... Header What is the purpose of the header? (Hing: consider “position”) Compare details (efficiency, behavior of “position”) with Array Implementation Array Pointer Previous/End EASY HARD Insert/Delete HARD EASY CS 303 –Lists Lecture 4

  5. Cursors (an aside) • Suppose you want to use pointers – but your programming • environment does not support them? • Use “cursors” • Allocate an Array called CursorSpace • Use indices into CursorSpace just like pointers • Do your own memory management of cells • New • Dispose CS 303 –Lists Lecture 4

  6. Doubly Linked Lists/Rings L • Many variations • Is ‘?’ a0 (Header) or a1? [a1] • Is ‘L’ part of the structure, or an external pointer? [external] • Is there a “First” element? [where L points!] • Implement the full Ring! • Everything is EASY; Position is natural CS 303 –Lists Lecture 4

More Related