Programming In C Data Structure Types Self Referential

  • Slides: 24
Download presentation
Programming In C • • Data. Structure Types Self Referential Structure Singly Linked List

Programming In C • • Data. Structure Types Self Referential Structure Singly Linked List

Data. Structure What? Is a way of organizing the data items in memory Why?

Data. Structure What? Is a way of organizing the data items in memory Why? To use the Main Memory efficiently Main Memory – Limited Capacity

Narrow Living Room WHY? To accommodate more Guests Identify Objects occupy More space Place

Narrow Living Room WHY? To accommodate more Guests Identify Objects occupy More space Place them somewhere Organize the rest

Congested Table To search an item Organize the items Identify Unwanted Remove it Find

Congested Table To search an item Organize the items Identify Unwanted Remove it Find Frequently Accessed Items Locate it in a Proper place Why?

Memory Layout 1 2 3 4 6 11 78 23 34 45 67 78

Memory Layout 1 2 3 4 6 11 78 23 34 45 67 78 12 a f v h j k q w r y u o 1 2 3 4 6 1 1 7 8 Currently used 2 3 3 4 4 5 6 7 7 8 1 2 a f v h j k q w r y u o No longer use

 • Linear – data items are organized sequentially or linearly – data elements

• Linear – data items are organized sequentially or linearly – data elements attached one after another • Non Linear – data items are not organized sequentially – One data element is connected to more than one elements to reflect a special relationship among them.

C:  Documents Turboc Bin Pictures Lib

C: Documents Turboc Bin Pictures Lib

Implementation of data Structures • Array Implementation • Linked List Implementation

Implementation of data Structures • Array Implementation • Linked List Implementation

Store 5 values 1, 2, 3, 4, 5 in continuous memory locations 6

Store 5 values 1, 2, 3, 4, 5 in continuous memory locations 6

Linked List 6 1 2 3 4 5

Linked List 6 1 2 3 4 5

Linked List Representation

Linked List Representation

Self-Referential Structures • Self-referential structures – Structure that contains a pointer to a structure

Self-Referential Structures • Self-referential structures – Structure that contains a pointer to a structure of the same type – Can be linked together to form useful data structures such as lists, queues, stacks and trees – Terminated with a NULL pointer (0) • Diagram of two self-referential structure objects linked together 15 Data member and pointer 10 NULL pointer (points to nothing)

Self-Referential Classes struct node { int data; struct node *next. Ptr; } • next.

Self-Referential Classes struct node { int data; struct node *next. Ptr; } • next. Ptr – Points to an object of type node – Referred to as a link • Ties one node to another node

Linked Lists • Linked list – Linear collection of self-referential class objects, called nodes

Linked Lists • Linked list – Linear collection of self-referential class objects, called nodes – Connected by pointer links – Accessed via a pointer to the first node of the list – Subsequent nodes are accessed via the link-pointer member of the current node – Link pointer in the last node is set to null to mark the list’s end • Use a linked list instead of an array when – You have an unpredictable number of data elements – Your list needs to be sorted quickly

Linked Lists • Types of linked lists: – Singly linked list • Begins with

Linked Lists • Types of linked lists: – Singly linked list • Begins with a pointer to the first node • Terminates with a null pointer • Only traversed in one direction – Doubly linked list • Two “start pointers” – first element and last element • Each node has a forward pointer and a backward pointer • Allows traversals both forwards and backwards – Circular, singly linked • Pointer in the last node points back to the first node – Circular, doubly linked list • Forward pointer of the last node points to the first node and backward pointer of the first node points to the last node