You are on page 1of 57

Bilgisayar Mhendislii Blm

Computer Programming

Dynamic Data Structures

GIT Computer Engineering Department

Comparison of Pointer and Nonpointer Variables

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Pointers as Output Parameters

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Dynamic Memory Allocation

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.3 Data Area of a Function with Three Pointer-Type Local Variables

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.4 Dynamic Allocation of Variables for an int, a char, and a FiveComponent planet_t Structure
Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.5 Assignment of Values to Dynamically Allocated Variables

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.6 Referencing Components of a Dynamically Allocated Structure

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.7 Allocation of Arrays with calloc

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.7 Allocation of Arrays with calloc (contd)

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.8 Stack and Heap After Program Fragment in Fig. 14.7

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.9 Multiple Pointers to a Cell in the Heap

GIT Computer Engineering Department

Linked Lists

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.10 Childrens Pop Beads in a Chain

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.11 Multiple Pointers to the Same Structure

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.12 Linking Two Nodes

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.13 Three-Node Linked List with Undefined Final Pointer

GIT Computer Engineering Department

Figure 14.14 Three-Element Linked List Accessed Through n1_p

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.15 Linked List After an Insertion

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.16 Linked List After a Deletion

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.17 Function print_list

GIT Computer Engineering Department

Figure 14.18 Comparison of Recursive and Iterative List Printing

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.19 Update of ListTraversing Loop Control Variable

GIT Computer Engineering Department

Figure 14.20 Recursive Function get_list

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.21 Iterative Function get_list

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.22 Function search

GIT Computer Engineering Department

Stack

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.23 Linked List Representation of Stacks

GIT Computer Engineering Department

Figure 14.24 Structure Types for a Linked List Implementation of a Stack

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.25 Stack Manipulation with Functions push and pop

GIT Computer Engineering Department

Figure 14.25 Stack Manipulatio n with Functions push and pop (contd)

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.25 Stack Manipulation with Functions push and pop (contd)

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.26 Structure Types for a Linked List Implementation of a Queue

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Queue

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.27 A Queue of Passengers in a Ticket Line

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.28 Creating and Maintaining a Queue

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.28 Creating and Maintaining a Queue (contd)

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.29 Functions add_to_q and remove_from_q

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.29 Functions add_to_q and remove_from_q (contd)

GIT Computer Engineering Department

g 14.30 Addition of One Passenger to a Queue

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.31 Removal of One Passenger from a Queue

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Case Study: Ordered Lists

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.32 Building an Ordered List through Insertions and Deletions

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.32 Building an Ordered List through Insertions and Deletions (contd)

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.32 Building an Ordered List through Insertions and Deletions (contd)

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.33 Cases for Recursive Function insert_in_order

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

14.34 Function insert and Recursive Function insert_in_or der

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.35 Iterative Function delete

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.36 Function delete Using Recursive Helper Function

GIT Computer Engineering Department

g 14.37 Recursive Helper Function delete_orde red_node

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Binary Search Trees

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Bilgisayar Mhendislii Blm

Figure 14.38 Binary Trees

GIT Computer Engineering Department

Figure 14.39 Binary Tree Search for 42

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.40 Building a Binary Search Tree

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.41 Creating a Binary Search Tree

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.41 Creating a Binary Search Tree (contd)

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

Figure 14.41 Creating a Binary Search Tree (contd)

Bilgisayar Mhendislii Blm

GIT Computer Engineering Department

You might also like