Top Banner
www.gtuking.blogspot.com Atmiya Infotech Pvt. Ltd. Data Structure By Ajay Raiyani
122

Data Structure Material

Mar 07, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Data

Structure

By Ajay Raiyani

Y

Page 2: Data Structure Material

www.gtuking.blogspot.com

ogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

1

Page 3: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Linked List 4

Singly Linked List .......................................................................4

Doubly Linked List......................................................................7

Explain Doubly Linked list: -.......................................................7

Circular Singly Linked List........................................................12

Order Linked List: .....................................................................16

Application of Linked list:..........................................................17

Graphical Representation of Linked List....................................19

Graphical Representation of Doubly Linked List........................22

Graphical Representation of Circular Linked List ......................26

Stack ........................................................................ 29

Application of the stack:............................................................30

Algorithm for push operation ....................................................32

Operation: POP I from the stack................................................33

Operation: PEEP 2nd element from the stack. ..........................34

Queue ....................................................................... 36

What is queue? .........................................................................36

Implementation of Queue:.........................................................36

Algorithm for simple queue:- .....................................................38

Insert function: ................................................................... 38

Delete Function ................................................................... 39

Print function ...................................................................... 40

Search Function .................................................................. 40

Update function................................................................... 40

Circular Queue .........................................................................41

Advantages of circular queue over simple queue ...................... 41

Disadvantages of Circular queue............................................ 42

Algorithm for Circular Queue: -.................................................42

Insert function: ................................................................... 42

Delete Function:.................................................................. 43

Print Function: .................................................................... 43

Application of Queue:................................................................44

Tree.......................................................................... 45

Definition:-................................................................................45

Explain Tree:- ...........................................................................45

Binary Tree:-.............................................................................46

Representation OR Implementation of Binary Tree. ...................47

Operation Of Binary Tree ...................................................... 49

Algorithm for preorder:- ....................................................... 50

Page 4: Data Structure Material

www.gtuking.blogspot.com

Inorder:-............................................................................ 50

Algorithm For Inorder Traversal of Binary Tree:- ...................... 52

Postorder Traversal:- ........................................................... 52

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

2

Page 5: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Algorithm for Postorder Traversal of Binary Tree. :-.................. 53

Application of Binary Tree:-.......................................................53

Graphs ...................................................................... 55

Y

o

g

i

d

h

a

m

,

K

a

l

a

w

a

d

R

o

a

d

,

Page 6: Data Structure Material

www.gtuking.blogspot.com

Rajkot. Ph : 572365, 576681

3

Page 7: Data Structure Material

www.gtuking.blogspot.com

Singly Linked List

Atmiya Infotech Pvt. Ltd.

Linked List

Explain Singly Linked list: -

Ans.

A singly linked list is a linked list in which each node contains only

one link field pointing the next node in the list.

Each node is divided in two parts.

1. Information part.

2. Contains address of next node.

For Example: -

Head

NULL

Head = Pointer Variable Points to first element (node) of in the list.

NULL=It indicates the end of the list.

1. Algorithm for the Creation of the Simple Linked List

Function CREATE(X, FIRST) [Given X, a new element, and FISRT, a pointer to the first element of a

Linked linear list whose typical node contains INFO and LINK fields as in

above fig, this function inserts X.]

Page 8: Data Structure Material

www.gtuking.blogspot.com

1. [Repeat thru step 5]

Repeat while Choice! = „n‟

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

4

Page 9: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

2. [Allocate the New node]

NEW NODE

3. [Initialize the fields of new node]

INFO (NEW) = X

LINK (FIRST) = NEW

4. [Want to insert another node]

Read (Choice)

5. [Set the LINK field of Last inserted element]

LINK (FIRST) = NULL

6. [Finished]

Return

2. Algorithm for the Inserting the element in the Simple Linked

List

Function INSERT (TEMPHEAD,KEY)

[This Function Insert the element after the node, which have the information

field equal to the X. And HEAD is the pointer variable, which points to the

first element of the list]

1. [Allocate the Memory for the NEW node]

NEW NODE

2. [Set fields of the NEW node]

INFO (NEW) = X

LINK (NEW) = NULL

3. [Insertion as the first node]

LINK (NEW) = TEMPHEAD

TEMPHEAD = NEW

Return (HEAD)

4. [Save the address of the first element of the list]

SAVE = TEMPHEAD

5. [Find the element after which we want to insert the element]

Repeat while INFO (LINK (SAVE) ) != NULL

6. [Insert the element]

LINK (NEW) = LINK (SAVE)

LINK (SAVE) = NEW

Page 10: Data Structure Material

www.gtuking.blogspot.com

7. [Return the address of the first element]

Return (TEMPHEAD)

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

5

Page 11: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

3. Algorithm for the delete the element from the list

Function DEL (TEMPHEAD, KEY)

[This Function Delete the Node whose information fields equals to the

KEY. And TEMPHEAD is the pointer which points the first element of the

list and function returns the address of the first node]

1. [Check for the empty list]

If TEMPHEAD = NULL

Then write (“Empty List”)

2. [Deletion of the first node]

SAVE = TEMPHEAD

TEMPHEAD = LINK (TEMPHEAD)

Free (SAVE)

Return (TEMPHEAD)

3. [Save the address of the first node of the list]

SAVE = TEMPHEAD

4. [Find the Node which to be deleted]

Repeat while INFO (LINK (SAVE))! = KEY

5. [Delete the node]

TEMP = LINK (SAVE)

LINK (SAVE) = LINK (LINK (SAVE))

Free (TEMP)

6. [Finished]

Return (TEMPHEAD) 4. Algorithm for the print the list

Procedure PRINT (HEAD)

[This Procedure print the information field of the list and HEAD is the first

element of the list]

1. [Repeat step thru]

Repeat while LINK (HEAD) != NULL

2. [Print the Information]

Write (INFO (HEAD))

3. [Finished]

R

e

t

u

r

n

Y

o

g

i

d

h

a

m

,

K

a

l

a

w

a

d

R

o

a

d

Page 12: Data Structure Material

www.gtuking.blogspot.com

, Rajkot. Ph : 572365, 576681

Page 13: Data Structure Material

www.gtuking.blogspot.com

6

Page 14: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Doubly Linked List

Explain Doubly Linked list

Ans.

The Linked list in which each node has two pointers, one to store

address of forward link & second to store address of backward link, is called

Doubly Linked list.

The Backward link for point out left most node. & The forward link

for point out right most node.

Reason for use of doubly linked list.

OR

Disadvantages of Singly linked list.

Ans.

Suppose we have singly linked list in which we want to insert a node

A pointed to by POINT 1 just before A node B pointed to by POINT 2.

We can change the link field of A to point out B, but we don‟t know

the address of the node preceding B. Therefore this required time consuming

sequential searching in singly linked list & this is In-efficient. To avoid this

problem we used doubly linked list.

Representation:

Generally, doubly linked list is represented as shown below.

Head

NULL

Backward Address

Forward Address

NULL: - It indicates the end

Each node having three fields.

1. Pointer to previous

node.

2. Information field.

3. Pointer to next

Page 15: Data Structure Material

www.gtuking.blogspot.com

node.

of the list in each direction.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

7

Page 16: Data Structure Material

www.gtuking.blogspot.com

Advantage: -

Atmiya Infotech Pvt. Ltd.

Inserting node in to or Deleting one node from the list is much easier

task because we don‟t have to search the list sequentially to locate the

preceding node.

Algorithm for the Creation of the Doubly linked list

Procedure CRETE(TEMPHEAD)

[This Procedure Create the Doubly linked list TEMPHEAD is the pointer

variable which point to the first element of the list and LPTR and RPTR is

the pointer field of the NODE which points the Previous and new Node of

the list respectively.]

1. [Repeat thru step]

Repeat while choice! = „n‟

2. [Allocate the new Node]

NEW NODE

3. [Set field of new Node]

INFO (NEW) = X

LPTR (NEW) = RPTR (RPTR) = NULL

4. [Insert the element]

RPTR (TEMPHEAD) = NEW

LPTR (RPTR (TEMPHEAD)) = TEMPHEAD

TEMPHEAD = RPTR (TEMPHEAD)

5. [Read the Choice]

Read (choice)

6. [Finished]

Return

Y

o

g

i

d

h

a

m

,

K

a

l

Page 17: Data Structure Material

www.gtuking.blogspot.com

awad Road, Rajkot. Ph : 572365, 576681

8

Page 18: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Insertion in the middle of a doubly linked list

A Left-most insertion in a doubly linked list

Algor

ithm

for

the

insert

an

eleme

nt in

the

doubl

y list

Func

tion

INS

ERT

(TE

MPH

EAD

,

KEY

)

Y

o

g

i

d

h

a

Page 19: Data Structure Material

www.gtuking.blogspot.com

m”, Kalawad Road, Rajkot. Ph : 572365, 576681

Page 20: Data Structure Material

www.gtuking.blogspot.com

9

Page 21: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

[This Function inserts an element after the node which the info filed equals

to the KEY and the returns the address of the first node]

1. [Allocate the memory for the new node]

NEW NODE

INFO (NEW) = X

2. [Insertion as the first node]

RPTR (NEW) = TEMPHEAD

LPTR (NEW) = NULL

RPTR (TEMPHEAD) = NEW

TEMPHEAD = NEW

Return (TEMPHEAD)

3. [Save address of the first node]

SAVE = TEMPHEAD

4. [Find the element after which we want to insert the element]

Repeat thru step while RPTR (SAVE)! = NULL

5. [Check for the desire position]

If INFO (RPTR (SAVE)) = KEY

Then

RPTR (NEW) = RPTR (SAVE)

LPTR (NEW) = SAVE

LPTR (RPTR (SAVE)) = NEW

RPTR (SAVE) = NEW

6. [Finished]

Return (TEMPHEAD)

Algorithm for the deleting an element from the doubly linked

list

Function DELETE (TEMPHEAD, KEY)

[This Function delete an element from the doubly list and returns the address

of the first element TEMPHEAD is pointer which points the first element of

the list and KEY specify info of the node which is to be deleted]

1. [Check for the empty list]

If TEMPHEAD = NULL

Then write (“Empty list”)

Page 22: Data Structure Material

www.gtuking.blogspot.com

Return

2. [Deletion of the first node]

TEMP = TEMPHEAD

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

10

Page 23: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

RPTR (TEMPHEAD) = TEMPHEAD

PRV (TEMPHEAD) = NULL

Free (TEMP)

Return (TEMPHEAD)

3. [Save the address of the first node]

SAVE = TEMPHEAD

4. [Search for the desire node]

Repeat while thru step 5 RPTR (SAVE)! = NULL

5. [Check for the information field]

If INFO (RPTR (SAVE)) = KEY

Then TEMP = RPTR (SAVE)

RPTR (SAVE) = RPTR (RPTR (SAVE))

LPTR (RPTR (SAVE)) = SAVE

Free (TEMP)

6. [Finished]

Return (TEMPHEAD)

Algorithm for the print the doubly list

Procedure PRINT (TEMPHEAD) [This procedure print the element of the node in the LIFO and FIFO format

and TEMPHEAD points the first element of the list]

1. [Check for the empty list]

If TEMPHEAD = NULL

Then write (“Empty list”)

Return

2. [First in first out]

Repeat while RPTR (TEMPHEAD)! = NULL

Write (INOF (TEMPHEAD))

3. [Last in first out]

Repeat while TEMPHEAD! = NULL

Write (INFO (TEMPHEAD))

4. [Finished]

Return

Page 24: Data Structure Material

www.gtuking.blogspot.com

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

11

Page 25: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Circular Singly Linked List

Explain Singly Circular Linked List:

Ans.

A singly circular linked list is a linked list in which the last node of

the list point to the first node in the list.

In Circular linked list, we can start at any node in the list & travel the

whole list. For this reason we can make our external pointer to the list

pointer to any node & still access all the node in the list.

Representation of Circular Linked list:

Head

Head

Advantage of Circular List over Singly linked list.

Ans.

1. It is concerned with the accessibility of a node.

Page 26: Data Structure Material

www.gtuking.blogspot.com

2. In Circular list every node is accessible from given node.

i.e.: -

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

12

Page 27: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

From this given node all nodes can be reached by many

changing through the list.

3. It concerns the deletion operation. In singly linked list to delete

desired node, it is necessary to give the address of first node of the

list.

4. This necessity result from the fact that in order to delete desired

node. The predecessor of this node has to be found.

5. To find the predecessor required that a search could be carried out

by changing through node from the first node of the list such

requirement doesn‟t exist for circular list.

Disadvantage:

Ans. It is possible that without some care in processing, it is possible to get

in to an infinite loop.

Solution of Disadvantage:

Ans.

In processing a circular list, it is important that we are able to delete

the end of list. This deletion of end is achieved by placing special node,

which can be easily identified in the circular list. This special node is often

called the list head of the circular list.

Representation of circular list with list head is given as in following

figure.

Head

Algorithm for the Creation of the Circular list

Procedure CREATE (TEMPHEAD)

[This procedure creates the circular list and TEMPHEAD is the pointer

variable which points the first element of the list]

1. [Save the address of the first element]

Page 28: Data Structure Material

www.gtuking.blogspot.com

SAVE = TEMPHEAD

2. [Repeat thru step 5]

Repeat while Choice! = „n‟

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

13

Page 29: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

3. [Allocate the New node]

NEW NODE

4. [Initialize the fields of new node]

INFO (NEW) = X

LINK (SAVE) = NEW

SAVE = NEW

5. [Want to insert another node]

Read (Choice)

6. [Set the LINK field of Last inserted element]

LINK (SAVE) = TEMPHEAD

7. [Finished]

Return

Algorithm for the insertion of the node in the circular list

Function INSERT (TEMPHEAD, KEY)

[This Function inserts an element after the node which have the info field

equal to the KEY variable and TEMPHEAD is the pointer which points the

first element of the list and SAVE is the temp variable for the store address

of the first element]

1. [Allocate the Memory for the NEW node]

NEW NODE

2. [Set fields of the NEW node]

INFO (NEW) = X

LINK (NEW) = NULL

3. [Save address of the first node]

FIRST = TEMPHEAD

4. [Insertion as first node and find last element of the list]

Repeat while LINK (TEMPHEAD)! = NULL

5. [Insert the node]

LINK (TEMPHEAD) = NEW

LINK (NEW) = FIRST

FIRST = NEW

Return (FIRST)

Page 30: Data Structure Material

www.gtuking.blogspot.com

6. [Insert in the list other than the first node]

Repeat while INFO (LINK (TEMPHEAD)) = KEY

7. [Set the link for the NEW node]

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

14

Page 31: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

LINK (NEW) = LINK (TEMPHEAD)

LINK (TEMPHEAD) = NEW

8. [Finished]

Return (FIRST)

Algorithm for the Deletion an element from the circular list

Function DELETE (TEMPHEAD, KEY)

[This Function deletes an element from the circular list]

1. [Check for the empty list]

If TEMPHEAD = NULL

Then write (“Empty List”)

2. [List contain Single node]

if LINK (TEMPHEAD) = TEMPHEAD

Return NULL

Free (TEMPHEAD)

3. [Save the address of the first node]

FIRST = TEMPHEAD

4. [Deletion of the first node]

Repeat while LINK (TEMPHEAD)! =NULL

5. [Delete the node]

LINK (TEMPHEAD) = LINK (FIRST)

LINK (FIRST) = FIRST

Return (FIRST)

6. [Finding desire node]

Repeat while INFO (LINK (TEMPHEAD)) = KEY

7. [Deletes the node]

TEMP = LINK (TEMPHEAD)

LINK (TEMPHEAD) = LINK (LINK (TEMPHEAD))

Free (TEMP)

8. [Finished]

Return (FIRST)

Algorithm for the printing the element of the circular list

Proce

dure

PRIN

T

(TEM

PHE

AD) 1.

[Chec

k for

the

empty

list]

Y

o

g

i

d

h

a

m

,

K

a

l

a

Page 32: Data Structure Material

www.gtuking.blogspot.com

wad Road, Rajkot. Ph : 572365, 576681

Page 33: Data Structure Material

www.gtuking.blogspot.com

15

Page 34: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

If TEMPHEAD = NULL

Then write (“Empty list”)

Return

2. [Print the desire node]

Repeat while LINK (TEMPHEAD)! = TEMPHEAD

Write (INFO (TEMPHEAD))

3. [Finished]

Return

Order Linked List:

Trace of the construction of an ordered linked linear list using Function

INSORD

Algorithm:

Function INSORD (TEMPHEAD, X)

[This function inserts an element in the list which sorted to its info fields and

X is the info field of the new node]

1. [Allocate Memory for the new node]

NEW = NODE

Page 35: Data Structure Material

www.gtuking.blogspot.com

2. [Copy the information field of the new node]

INOF (NEW) = X

3. [Is the list empty?]

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

16

Page 36: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

If TEMHEAD = NULL

Then LINK (NEW) = NULL

Return (NEW)

4. [Does the new node precede all other node in the list?]

If INFO (NEW) <= INFO (TEMPHEAD)

Then LINK (NEW) = TEMPHEAD

Return (NEW)

5. [Save the address of the first node]

FIRST = TEMPHEAD

6. [Search the predecessor of the new node]

Repeat while LINK (TEMPHEAD)! = NULL and INFO (LINK

(TEMPHEAD)) <= INFO (NEW)

- TEMPHEAD = LINK (TEMPHEAD)

7. [Set link fields of the new node]

LINK (TEMPHEAD) = LINK (NEW)

LINK (SAVE) = NEW

8. [Return first node pointer]

Return (FIRST).

Application of Linked list:

Ans.

There are no of applications of linear linked list, many examples could

be given but only a few will be described here,

1. In Line Editor: -

One interesting use of linked list is line editor. We can keep a

linked list of line nodes. Each containing line number, a line of

Text & a pointer to next line information node.

2. In String Manipulation: -

→ Variable string length can also be represented as linked list.

A string may be declared as a record that contains a string count

& a pointer to the linked list of character.

Circular manipulation is very simple with this string

Page 37: Data Structure Material

www.gtuking.blogspot.com

implementation.

→ In one simple representation, each character node contains a

string character & a pointer to the next character node. With this

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

17

Page 38: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

representation much more space is used for the pointer and for the

character.

→ If space is limited, each node can contain several character, as

well as pointer to next node.

This representation saves space at the cost of increasing the

complexity of the algorithm that manipulate the character in the

string.

3. In Implementation of Sparse matrix: -

A sparse matrix is a table which relatively with few non-zeros

elements.

4. In Operating System: -

The allocation of memory space may be managed doubly linked

list of various size block of memory.

In multi-user system the operating system may keep track of

user jobs waiting to execute through linked queue of control block.

5. Implementing stack & queue: -

It is easy to implement stack & queue operation using linked

list rather than array implementation of stack & queue.

6. In Polynomial Manipulation: -

A linked list uses as a typical term of polynomial. The common

operation performs on polynomial are addition, subtraction,

multiplication, division, integration & differentiation.

7. Linked Dictionary: -

An important part of any compiler is the construction &

maintenance of a dictionary containing name & their associated

values, such dictionary is also called a symbol table.

8. Another application, which is closely related to polynomial

equation, is performing operation to same arbitrary precision.

What do you mean by dummy header?

Page 39: Data Structure Material

www.gtuking.blogspot.com

Ans.

A Dummy header node is the list before the first actual data node can

often contain useful information about the structure.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

18

Page 40: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

For Example: - No of Node.

A query Algorithm can then determines the status of list by

examine the contents of the PREFIRST node. This amount to adding node

more node to the list.

Head

Addition & Deletion from list required changing this information-

keeping field in the dummy header node of the list.

If the list become empty & Dummy header node is not used then the

HEAD pointer for the list must be made NULL. But if the dummy header

node is present, then the HEAD pointer not need to be changed to NULL,

because it always points to this dummy header.

Graphical Representation of Linked List

Top

2000

20

3000

h

e

a

d

Page 41: Data Structure Material

www.gtuking.blogspot.com

1000

Addr

ess of

a

node

Data

of a

node

Addres

s of

next

node 1000 10 2000

2000 20 3000

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

19

Page 42: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Insertion into a linked list

3000

30 30 4000

4000

5000

405000

NULL

50

1. Insertion as a first node

Before insertion

head

1000 10

1000

2000

3000

2000 20 3000

304000

newNode 8000 4000 40 5000

8000 100

After Insertion

Head 1000

8000 10 2000

5000

NULL

50

3000

newNode 8000 4000 40 5000

8000 100

1000

2. Insertion at a desired position

Before Insertion

Head 1000

1000 10 2000

2000 20

3000 30

newNode

2000 20 3000

304000

5000

NULL

3000

4000

4000

5000

8000

8000 100

405000

50

50

NULL

Page 43: Data Structure Material

www.gtuking.blogspot.com

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

20

Page 44: Data Structure Material

www.gtuking.blogspot.com

After Insertion

head 1000

1000 10 2000

Atmiya Infotech Pvt. Ltd.

3000 30

newNode 8000

8000100

4000

2000 20 3000

4000

8000 405000

5000 50

NULL

Append a node in a linked list

Before Append

head

1000 10

1000

2000

3000

4000

2000 20 3000

304000

5000

NULL

40 5000

50

After Appending

head 1000

1000 10

2000

3000

4000

newNode

8000

2000 20 3000

304000

5000 8000

newNode

8000

8000

100

NULL

40 5000

50

8000

100

NULL Deletio

Page 45: Data Structure Material

www.gtuking.blogspot.com

n from a Linked List

Deletion of a first node

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

21

Page 46: Data Structure Material

www.gtuking.blogspot.com

Before Deletion

head 1000

1000 10 2000

After Deletion

head 1000

2000 10 2000

Atmiya Infotech Pvt. Ltd.

2000 20 3000

3000 304000

4000 405000

5000

NULL

2000 20 3000

3000 304000

4000 405000

5000

NULL

50

50

Deletion of a desired node

Before deletion

head

1000

1000 10 2000

After deletion

head 1000

1000 10 2000

3000

3000

4000

4000

2000 20 3000

304000

405000

5000

NULL

2000 20 3000

304000

405000

5000 NULL

50

50

Graphical Representation of Doubly Linked List

4000 Address of a node

5000 Address of previous node

40 Data of a node

Page 47: Data Structure Material

www.gtuking.blogspot.com

5000 Address of next node

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

Top

22

Page 48: Data Structure Material

www.gtuking.blogspot.com

head

1000

Atmiya Infotech Pvt. Ltd.

1000 NULL 2000

Insertion into a doubly linked list

As a first node

Before Insertion

head 1000

1000

10

2000

newNode 8000

8000

100

After Insertion

head 1000

8000

10 1000 3000

2000 20 2000 4000

3000 30 3000 5000

4000 404000

5000

NULL

NULL 2000

1000 3000

20 2000 4000

3000 303000 5000

4000 404000

5000 50

NULL

8000 2000

10 1000 3000

50

newNode 8000

8000

NULL

100

1000

2000 20 2000

4000

4000

3000 30 3000 5000

404000

5000 50

NULL

Append a node to doubly linked list

Before Append

head

1000

1000 NULL 2000

10 1000 3000

2000 20 2000

4000

Page 49: Data Structure Material

www.gtuking.blogspot.com

3000 30 3000 5000

4000

5000

40 4000

50

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

23

Page 50: Data Structure Material

www.gtuking.blogspot.com

After Append

head 1000

1000 NULL 2000

Atmiya Infotech Pvt. Ltd.

NULL

NewNode

8000

8000

100

NULL

Deletion of node

Deletion of a first node

Before deletion

head 1000

1000 NULL 2000

10 1000 3000

2000 20 2000 4000

3000 30 3000 5000

4000

5000

8000

NewNode

8000

10 1000 3000

2000 20 2000 4000

40 4000

50

8000

5000

100

NULL

After Deletion

head 1000

1000 NULL 2000

10NULL

3000

4000

3000

202000

30

4000

Page 51: Data Structure Material

www.gtuking.blogspot.com

5000

4000

3000

40

5000

3000 30

3000

5000

404000

5

0

NULL

5000

4000

50

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

24

Page 52: Data Structure Material

www.gtuking.blogspot.com

Deletion of a desired node

Before deletion

head 1000

1000 NULL 2000

Atmiya Infotech Pvt. Ltd.

10 1000 3000

2000 20 2000 4000

NULL

3000 30 3000 5000

After deletion

head 1000

1000 NULL 2000

4000

5000

404000

NULL

50

10 1000 3000

2000 20 2000 4000

3000 30 3000 5000

5000

5000

403000

NULL

50

Y

o

g

i

d

h

a

m

,

Page 53: Data Structure Material

www.gtuking.blogspot.com

Kalawad Road, Rajkot. Ph : 572365, 576681

25

Page 54: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Insertion at a desired position

Before Insertion

head

1000

1000 NULL 2000

2000

101000

3000 30

20 20004000

3000

3000 5000

After Insertion

head 1000

1000 NULL 2000

100

4000 404000

5000

newNode 8000NULL

8000

50

2000

101000

3000 30

20 20004000

3000

8000 5000

80004000

100

3000

8000 404000

5000

newNode 8000NULL

50

Graphical Representation of Circular Linked List

2000 Address of a node

20 Data of a node

3000 Address of next node

head 1000

1000 10 2000

2000 20 3000

3000 304000

4000 405000

5000

1

0

0

0

Insertion

into a

linked

list

Y

o

Page 55: Data Structure Material

www.gtuking.blogspot.com

gidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

Top

50

26

Page 56: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

3. Insertion as a first node

Before insertion

head

1000 10

1000

2000

3000

2000 20 3000

304000

newNode 8000 4000 40 5000

8000 100

After Insertion

head 1000

8000 10 2000

5000

NULL

50

3000

newNode 8000 4000 40 5000

8000 100

1000

4. Insertion at a desired position

Before Insertion

head 1000

1000 10 2000

2000 20

3000 30

newNode

After Insertion

head 1000

1000 10 2000

2

0

0

0

2

0

2000

20

3000

3

0

4

0

0

0

5

0

0

0

3000

4000

8

0

0

0

8000

100

8000

4000

5000

Page 57: Data Structure Material

www.gtuking.blogspot.com

405000

50

50

1000

3000

3000 304000

8000 405000

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

27

Page 58: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

newNode 8000

8000100

4000

Append a node in a linked list

Before Append

head 1000

1000 10 2000

2000 20 3000

3000 304000

4000

5000

5000

1000

50

1000

40 5000

50

After Appending

head 1000

1000 10 2000

Deletion from a Linked List

Deletion of a first node

Before Deletion

h

e

a

d

1

0

0

0

1

0

0

0

1

0

2

0

0

0

4000

newNo

de

8000

2000 20 3000

3000 30 4000

5000 800

0

newN

ode

800

0

Page 59: Data Structure Material

www.gtuking.blogspot.com

2000 20 3000

8000

100

NULL

40

5000

50

8000

100

1000

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

28

Page 60: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

After Deletion

head 1000

2000 10 2000

3000

30 30 4000

4000

5000

405000

1000

50

3000

Deletion of a desired node

Before deletion

head 1000

1000 10 2000

3000

After deletion

head 1000

1000 10 2000

3000

Stack

What is Stack?

Ans.

4000

4000

4000

2000 20 3000

304000

405000

5000

2000

2000 20 3000

304000

405000

5000

1000

2000 20 3000

304000

405000

5000

50

50

50

A stack is a data structure in which addition of New element or

deleting of existing elements always takes place at the same end. This

end is often known as „top‟ of stack.

This situation can be compared to a stack of plates in a cafeteria

where every new plate added to the stack is added at the „top‟.

Page 61: Data Structure Material

www.gtuking.blogspot.com

Similarly, every new plate taken off the stack is also from the

„top‟ of the stack.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

29

Page 62: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

When add an item to a stack we say that we push it on the stack

& when we remove an item we say that pop it from the stack. So we

can say there are mainly two types of operations,

Push & Pop, stack also sometimes called LIFO (Last In First Out).

The real life example of Stack:

Ans.

As we talk about real life example, we all are familiar with “a

railway system for shutting cars”,

A railway Shutting system Representation

As shown in figure, in this system the last railway car to be

placed on the stack is the First-level. Using respectively the insertion &

deletion operations permits the cars to be arranging on the output

railway line in various orders.

What is the major advantage of pointer Implementation stack over array

Implementation of stack?

Ans. 1. With the array Implementation of stack. It is necessary to

preallocate the max. Stack size at the time of implementing

the program.

2. In pointer Implementation of stack is not need of the stack

size.

3. With array implementation of stack, we must check for stack

overflow but with linked list implementation we don‟t need

this.

4. In array implementation if we want to insert a large number

of element then we must define the big array. So allocate the

memory as per our requirements.

5. When we delete the item from memory that memory can‟t

use for any other purpose.

6. In pointer implementation when we delete the item, the

memory is free for any other purpose.

Page 63: Data Structure Material

www.gtuking.blogspot.com

Application of the stack:

Ans.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

30

Page 64: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

There are several applications where stack can be put to

use.

1. Recursion

2. Polish Notation

3. Stack Machine

1. Recursion: - Recursion is the name given to the technique of defining

a set on a process in term of itself.

OR When a called function in turn calls another function a

process of chaining occurs recursion a special case of this process

when a function calls itself.

There are two important conditions that must be

satisfied by any recursive procedure.

2. Polish notation: -

1)

2)

Each time a procedure calls itself (either

directly or indirectly) it must be “nearer in some sense, to a solution”. In the case

of the factorial function, each time that the function calls itself, it argument is decrement by one, so the argument of

the function is getting smaller.

There must be a decision criterion for

stopping the process or computation. In the case of the factorial function, the value of n must be zero.

We are already familiar with arithmetic expressions in infix notation. In this notation a binary operator is placed

between its operands.

For example: -

A + B – C A – ( C – D ) / ( B * D )

A + B * D – E / F

The operations are normally carried out from left to

right. We also have procedure rules for evaluating expressions.

A*B+C+D*E would be to multiply B & A, then adding it to C, saving

Page 65: Data Structure Material

www.gtuking.blogspot.com

that result temporarily say in RESULT, Then multiplying D & E, and add it to the RESULT. Therefore we have to followed the sequence

as given below, AB * C + DE * +

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

31

Page 66: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

This notation is called the postfix notation or

reverse-polish notation.

We can convert infix notation to postfix notation by using stack data structure.

3. Stack Machine: - One of the main problem with using machines

which have a very limited no of registers is how to handle the store

of intermediate results to solve this problem such machines are

known as stack machine. Many of the machines, which are appearing on the

market, include in their architecture hardware stacks or stack mechanisms. The such machines are the PDP-11 & the Burroughs 5000. Both machines are particularly well suited for the stacking of

local variables & parameters that arise in procedure calls of block nested languages.

What is push operation? Write an algorithm to push an element in to the stack.

Ans. When an item is added to a stack, It is pushed on to the stack, given a

stack & an item I, performing the operation push (st,I) adds the item I to the

top of stack „st‟. Push operation is applicable to any stack.

Push I, to the stack „st‟

tos →

I

Stack – st

Algorithm for push operation

Variables Size → Total no of elements tos → Top of the stack.

val → Information which you want to insert in stack.

Stack[]→ Array of stack.

Step 1 [Check that the stack is Full]

If tos = size-1 then

(print message)

Stack is full.

R

e

t

u

r

n

.

Step 2

[else] [

I

n

c

r

e

m

e

Page 67: Data Structure Material

www.gtuking.blogspot.com

nt tos by 1]

tos ← tos+1

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

32

Page 68: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Step 3 [Input the element to stack]

Stack[tos]←val Step 4 [Stop]

What is pop operation? Write an algorithm to pop an element in to the stack.

Ans. The pop operation removes the top most item to understand after

removed of top most information new value of the pointer top becomes the

previous value of top that is top=top-1 & free position is allocated as free

space.

tos →

I

B

A

Stack (st)

Operation: POP I from the stack.

tos

B

A

Algorithm:

Stack (st)

Step 1 [Check that stack is empty]

if tos=-1 then

(print message)

“Stack is Empty” return

Step 2 [Else]

[Decrement tos by 1]

tos←tos-1

return.

Page 69: Data Structure Material

www.gtuking.blogspot.com

Step 3

[Stop]

What is peep operation? Write an algorithm to peep an element from the stack.

Ans.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

33

Page 70: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

The peep operation does not removes the item from the stack but by using peep we can view the elements from stack. So after peep operation

value of tos is unchanged.

tos →

I

B

A

Stack (st)

Operation: PEEPS 2nd element from the stack.

tos → I

B

A

Stack (st)

Peeped element is : B

Algorithm:

This function returns the value of ith element from top of the stack(containing SIZE

elements)

Step 1 [Check for stack underflow]

if tos – I + 1 < 0 then (print message)

“Stack is Empty” return

Step 2 [Return the Ith element from top of stack]

return St[tos – I + 1];

Graphical Representation of Stack

Array representation of stack with five elements for following operations

1.

inse

rt

10

2. insert 20

3.

inse

rt

30

Y

o

g

i

d

h

a

m

,

K

a

l

a

Page 71: Data Structure Material

www.gtuking.blogspot.com

wad Road, Rajkot. Ph : 572365, 576681

34

Page 72: Data Structure Material

www.gtuking.blogspot.com

4. delete node

5. delete node

6. insert 40

7. insert 50

10

10 20

10 20 30

10 20

10

10 40

10 40 50

Atmiya Infotech Pvt. Ltd.

-

push(10)

push(20)

push(30)

pop( )

pop( )

push(40)

push(50)

Y

Page 73: Data Structure Material

www.gtuking.blogspot.com

ogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

35

Page 74: Data Structure Material

www.gtuking.blogspot.com

Queue

What is queue?

Ans.

Atmiya Infotech Pvt. Ltd.

Queue is very useful in computer science.

We define a queue to be a list in which all addition to the list is

made at the one end & all deletion from the list is made at other

end.

Queue are also called First In First Out list of FIFO for sort.

We may draw queue in any one of the forms as given below.

rear

Data

Data

Data

Data front

Data

Data

Data

front Data

rear

Queue makes two open ends called front & rear.

Similarly to stack operation, that operation define a queue are

given below,

1. Create a queue

2. Check whether queue is empty

3. Check whether queue is full

4. Add item at the rear queue

5. Remove item from front of queue

6. Read the front of queue

7. Print the enter queue

There are mainly two types of queue,

1. Priority queue.

2.Circular queue. For example: -

The railway reservation counter is an example of queue

where the people collect their tickets on the first in first out

Page 75: Data Structure Material

www.gtuking.blogspot.com

basis.

Implementation of Queue:

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

36

Page 76: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

A queue as pointer “front” & “rear” pointing to the “front” &

“rear” elements of the queue, respectively consider a queue “Q”

consisting of (n) elements & element value which we have to insert in

to “Q” the value NULL of front pointer implies an empty queue.

Queue is also called FCFS(First Come First Served).

Draw a queue using following data.

Ans.

Consider a size 6. Assume that the queue is initially empty. It is

required to insert element 1,2 & 3 followed by delete 1 & 2 & insert

4,5 & 6.

1

front rear

1

Front

1 2 3

Front

2

rear

Front

rear

23

rear

3

Front rear

Front

Front

34

rear

Page 77: Data Structure Material

www.gtuking.blogspot.com

rear

3 4 5

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

37

Page 78: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Front

3 4 5 6

rear

Now, if we try to insert 7, an overflow occurs even through the first

two cells are free. To avoid this drawback, we can arrange these

elements in a circular fashion with Queue[0] following Queue[n-1]. It

is then called a circular array representation. We may depict a circular

queue as given in figure,

Note:- To see the disadvantage of queue see the advantage of circular

queue.

Algorithm for simple queue:-

Insert function:

Variables: -

val = Information of user.

rear = Variable for last subscript value.

front = Point first element in queue.

size = Total no of elements.

queue = Array of queue.

Y

o

g

i

d

Page 79: Data Structure Material

www.gtuking.blogspot.com

ham”, Kalawad Road, Rajkot. Ph : 572365, 576681

38

Page 80: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Step 1:- [Check that queue is full]

if rear = (size – 1) then

[Print message] “Queue is overflow”

return

Step 2:- [else]

read value

Step 3:- [Check that the element is first element]

if rear = -1 then rear = rear +1 front = front +1

Step 4:- [Input an element]

queue [rear]←val

Step 5:- [Stop]

Delete Function

Step 1. [Check that queue is empty]

If front = -1 then

(print message) “Queue is empty”

return

Step 2. [Check that front & rear both points to same element]

If front = rear then Front ← -1 Rear ← -1

Return

Step 3. [Else]

[Increment front by 1] Front ← front +1

Step 4. Return

Step 5. [Stop]

Y

o

g

i

d

h

a

m

,

K

a

l

a

w

a

d

R

o

a

d

Page 81: Data Structure Material

www.gtuking.blogspot.com

, Rajkot. Ph : 572365, 576681

39

Page 82: Data Structure Material

www.gtuking.blogspot.com

Print function

Atmiya Infotech Pvt. Ltd.

Step 1. [Check that queue is empty]

If front = -1 then

(print message) “Queue is empty”

return

Step 2. [Print Queue from front to rear]

for i←front to rear

print queue[i]

Step 3. [Stop]

Search Function

Step 1. [Check that queue is empty]

If front = -1 then

(print message) “Queue is empty”

return

Step 2. [Which value you want to search]

Read key value

Step 3. [Search whole queue]

for i←front to rear

Step 4. [Check that value found]

if queue[i] = key then

[print message] “key Value Found”

return

Step 5. [Stop]

Update function

Step 1. [Check that queue is empty]

If front = -1 then

(print message) “Queue is empty”

r

e

t

u

r

n

Step 2.

[Which

value

you

want to

update

]

Rea

d

key

v

al

ue

Y

o

g

i

d

h

a

m

Page 83: Data Structure Material

www.gtuking.blogspot.com

, Kalawad Road, Rajkot. Ph : 572365, 576681

Page 84: Data Structure Material

www.gtuking.blogspot.com

40

Page 85: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Step 3. [Search whole queue]

for i←front to rear

Step 4. [Check that value found]

if queue[i] = key then read queue[i]

return

Step 5. [Stop]

Circular Queue

Explain Circular Queue:-

Any number of items could be placed on the queue, so long as items

were also being taken off. This implementation of a queue is called circular

queue, because it uses its storage array as if it were a circular instead of a

linear list. In essence of queue is full when the stored index is one index less

that the retrieve index, otherwise there is room in the queue for another

event.

Circular Queue

Perhaps the most common use of a circular queue is in operating

system where a circular queue holds the information read from & written to disk files on the console.

Circular queues are also used in Real Time Application‟s programs.

Which must continue to process information while buffering I/O request.

Advantages of circular queue over simple queue

Page 86: Data Structure Material

www.gtuking.blogspot.com

Ans.

But in circular queue we can insert new item to the

location from where previous item to be deleted using crap

cround of the queue.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

41

Page 87: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

In circular queue we can insert n numbers of elements

continuously but condition is that we must used deletion. Where

as in simple queue continuously insertion is not possible.

If a computer need to provide continues scheduling of

batch job, without interruption then by using circular

implementation we can achieve it.

Disadvantages of Circular queue

Ans.

In circular queue implementation the full queue condition & empty queue condition became same & it is inefficient for program therefore it in necessary to delete the full queue condition at (Array size 1) location

meaning that if we have array of 10 location than we can use only a location to insert a queue.

Algorithm for Circular Queue: -

Insert function:

Variables: -

Front = Points first element of queue.

Rear = Variable for last subscript value.

Queue = Array of queue

Size = Total no of elements.

Step 1.

Step 2.

Step 3.

queue]

Page 88: Data Structure Material

www.gtuking.blogspot.com

[Check that Queue is

full]

If front = 0 & rear = size-

1 then

[Print message]

“Queue is overflow”

return

[Else]

[Check that Queue is full]

if rear = front-1 then

[Print message]

“Queue Overflow”

return

[Else]

[Check that rear points to last element of

if rear = size-1 then

rear←0

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

42

Page 89: Data Structure Material

www.gtuking.blogspot.com

Step 4.

element]

Atmiya Infotech Pvt. Ltd.

queue[rear]←val

return

[Else]

[Check that rear doesn’t points to any

if rear=-1 then

front ← 0

rear ← 0

queue[rear] ← val

return

P.T.O.

Step 5.

Step 6.

[Else]

[Increment rear by 1]

rear←rear+1

[assign value in queue]

Queue[rear]←val

Step 8. [Stop]

Delete Function:

Step 1. [Check that front & rear both points to same]

If front = rear then Front ← -1

Rear ← -1 Return

Step 2. [Else]

[Check front points to last element]

If front = size –1 then Front ← 0

Step 3. [Else]

[Increment front by 1] Front ← front +1

Step 4. Return

Step 5. [Stop]

Print

Functi

on:

Y

o

g

i

d

h

a

m

,

K

a

l

Page 90: Data Structure Material

www.gtuking.blogspot.com

awad Road, Rajkot. Ph : 572365, 576681

43

Page 91: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Step 1. [Check that front points to any before rear

element]

If front <= rear then

[Repeat i up to rear] for i←front to rear

print queue[i]

Step 2. [else]

[Repeat i up to last element] for i←rear to size –1

print queue[i]

Step 3. [Repeat i up to front]

for i←0 to front

print queue[i]

Step 4. [Stop]

Application of Queue: In a computer network messages from one to another

computer are generally created asynchronously. These messages therefore need to be buffered until the receiving computer is ready for it these

communication buffers make extensive use of Queues by storing of Queues by storing these message in a queue. Also the messages need to be sent to

receiving computer in the some order in which they are created. I.e. FIFO.

“Yogidham”,

Page 92: Data Structure Material

www.gtuking.blogspot.com

Kalawad Road, Rajkot. Ph : 572365, 576681

44

Page 93: Data Structure Material

www.gtuking.blogspot.com

Tree

Definition:-

Atmiya Infotech Pvt. Ltd.

o A Tree structure means that the data is organized as branches, which relate the info. It is a non-linear data structure. One very common gynecological chart that is used to represent tree structure is lineage. The lineage chart represents ancestors.

Explain Tree:- o A Tree structure means that the data is organized as branches, which

relate the info.

o It is used to represent the relationship among data element in so many applications.

o Tree is a non-linear data structure.

o Trees are encountered frequently in every life.

o An arrays, lists, stacks, queues are linear data structure.

o Graphs are classified in the non-linear category of data structure. You may recall from the previous blocks on graph that an important class of graph is called Trees.

o In Tree structure each node may paint to several other nodes. Thus a

tree is a very flexible & powerful data structure that can be used for a glide variety of application.

o Although the nodes in a general tree may contain any no of pointer to the other tree nodes.

o A large no of data structure have at the most two pointers to the other

tree nodes. This type of tree is called Root. Together with two binary trees called the left sub tree & right sub tree of the root.

o Gaining from the leaves to the root is called climbing the tree & gaining from the root to the leaves is called descending the tree.

o One of the most fundamental & useful concept is computer science.

o Trees find their application such as compiles construction database design, operating systems etc.

o For (e.g.) :-

Suppose we wish to use a data structure to represent a person & all of his or her descendants. Assume that the person‟s name is Rahul & that he has 3 Children, sanjay, Sameer, Nisha. Also suppose that sameer has 3 children, Abhay, Ajit & Madhu and nisha has a child Neha. We can represent rahul & his descendants guit naturally with the tree structure shown below.

Page 94: Data Structure Material

www.gtuking.blogspot.com

Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

45

Page 95: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

The set of tree is called forest.

Binary Tree:- o A Binary tree is a finite set of element that is either empty or is

partitioned into three disjoint subsets. The first subset contains a single element called the root of the tree. The other two subsets are themselves binary trees called the left & right subtree of the original tree. A left or right subtree can be empty. Each element is called a NODE of the tree.

o For (e.g):-

We have a root R & two disjoint binary tree, T1 & T2 (Which are called the left sub tree & right sub tree respectively). If T1 is non-empty then the root of the T1 is called the left successor of R. If T2 is non-empty then the root of T2 is called as right successor of R.

Y

o

g

i

d

h

Page 96: Data Structure Material

www.gtuking.blogspot.com

am”, Kalawad Road, Rajkot. Ph : 572365, 576681

46

Page 97: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Here root is 1 & its predecessor is 2 & right successor is 3. Similarly

left successor of 2 is 4& right successor is 5.

Representation OR Implementation of Binary Tree.

There are two traditional popular techniques that are used to maintain

binary tree in to the memory these are, ♦ Sequential Representation (Linear) ♦ Linked list Representation (Link)

Sequential Representation:- ♦ A Sequential Representation of a binary tree requires numbering of

nodes starting with nodes on level then level 1 & so on…. The nodes are numbered from left to right.

♦ The nodes of the binary tree are maintained in a one-dimensional

array. ♦ Once the size of array has been determined the following method is

used to represent the tree.

Stare the root in 1st location of array. If a node is in location n of the array.

♦ Stare its left & location in & its right child location (zn+1) Advantages:-

♦ The main advantage of this method i.e in its simplicity & the fact that given a child node, its parent node can be determined

immediately, If the child nodes at location N in the array then its parents node is at location N/Z (integer division).

♦ It can be implemented easily in elder language such as BASIC &

Page 98: Data Structure Material

www.gtuking.blogspot.com

FORTRAN.

♦ In tree searching is faster than linked list. Disadvantages:-

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

47

Page 99: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

♦ Insertion & Deletion of node cause considerable data movement up & down. The array takes more processing time.

♦ In this method, the memory locations are listed if tree is partially

filled. Linked Representation:-

♦ In this representation each node requires three fields. ♦ One for the link of the left child, Second field for representing the

information associated with the node & the Third field is used to represent the link of the right child.

Pointer to

Left Child

Info

Pointer to

Right Child

♦ When a node has no child then the corresponding pointer fields

are Null. ♦ The given figure shows a linked representation of the binary tree.

♦ The Llink & Rlink fields are pointer to left child & the right child of a node.

Advantages:-

The insertion & the deletion in value no data movement except the rearrangement of pointer . Thus, processing time is reduce.

Disadvantages:-

Wastage of memory space in NULL pointer. The above given figure has 10 NULL pointers.

Page 100: Data Structure Material

www.gtuking.blogspot.com

Given a node, it is difficult to determine it‟s a parent. Its algorithm implementation is more difficult in languages such as BASIC,

COBOL. FORTRON. Solution of Disadvantages:-

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

48

Page 101: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Threading the tree can offset the first disadvantage. The second disadvantage can be offset by adding a parent field to a node

Operation Of Binary Tree

o There are several operation that can be performed in binary

trees such as, Insertion Deletion Searching Traversal of the tree etc.

• Traversal:-

One of the most common operation performed on tree structure is that the Traversal. This is procedure by which each node in the tree is processed exactly once.

There are mainly three types of traversing binary tree. • Preorder

• Inorder

• Postorder

• Preorder:-

In this technique first of all we processed the root R of the binary tree T. Then we traversal the left subtree T1 & R in preorder

Which means that we traversal root of the subtree T1 first & then its left subtree.

Page 102: Data Structure Material

www.gtuking.blogspot.com

First of all consider the root node A then consider its left subtree as

shown in upper figure.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

49

Page 103: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Now we process root of subtree T1 & then its left subtree T3 that

is a terminal node o. Now, consider the right subtree of T1 that

T4, the root of T0 is E & then left subtree of T4 is T7 that is the

terminal of all the nodes of the left subtree T1 is finished & is

given as, B,D,E,F.

Continue the same process for the right subtree of A & its nodes.

After completion of the preorder traversing of binary tree we get

list of nodes as following,

A, B, D, E, F, C, G, H, I, J.

The preorder traversal of a binary tree is defined as follows,

First process the root node.

Second traversal the left subtree in preorder.

Third traversal the right subtree in preorder.

Algorithm for preorder:-

Temproot:- Temporary pointer variable initialized with root.

Info:- Information part of node.

Left:- Pointer to left most node.

Right:- Pointer to right most node.

Step-1:-( Repeat step 2,3,4 & check that temproot is not equal

to NULL)

• If temproot is not equal to NULL then

Step-2:-(Print information part of node)

• Print info(temproot)

Step-3:-(Call function itself as a left most node)

• Preorder(left(temproot))

Step-4:-(Call function itself as a right most node)

• Preorder(right(temproot))

Step-5:-(Stop)

Inorder:-

In inorder traversal method first of all we have to process the

left subtree T1 of the root R in Inorder then process the root

R & at the last. We process the right subtree T2 of R.

Y

o

Page 104: Data Structure Material

www.gtuking.blogspot.com

gidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

50

Page 105: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

Consider the figure we first process the node D then the root

of D is B node & then the right subtree of B. now the left

subtree of e is f that is the terminal node thus, all the nodes

of left subtree of root is processed & resulting list is as

follows:

• Left Tree:-

T1

B

T3

T4

D E

T9

J

• Then we process the root A & then process the right

subtree T2.

Page 106: Data Structure Material

www.gtuking.blogspot.com

• Combining all the list of elements of the left subtree T1 &

root & T2 element of the right subtree T2, We get the list

of all the element in the binary tree T as following

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

51

Page 107: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

♦ D, B, J, E, A, F, C, H, G, I.

• The inorder to traversal of a binary tree is define as

follows,

♦ Traverse the left tree in Inorder.

♦ Process the root node.

♦ Traverse the right tree in Inorder.

Algorithm For Inorder Traversal of Binary Tree:-

Variable:-

Same as Preorder.

♦ Step-1:- (Repeat step2,3 & 4 & check that temproot is

not equal to NULL)

If temproot is not equal to NULL then

♦ Step-2:-(Call function itself as a left most node)

Inorder (left(temproot))

♦ Step-3:-(print Information part of node)

Info (temproot)

♦ Step-4:-(Call function itself as a right most node)

Inorder (right(temproot))

♦ Step-5:-(Stop)

Postorder Traversal:-

♦ In the postorder traversal first of all we process the left

subtree T1 of root in postorder. Then, the right subtree

T2 in postorder & at the last the root.

A

T1

T2

T3 B C

T4 T5

T6 D E G H

T7 T8

T9 F I J

Page 108: Data Structure Material

www.gtuking.blogspot.com

♦ Consider the figure, we first process the terminal node

D. Now, we consider right subtree of B that is E, the left

subtree of E is F, so process F at the second priority as,

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

52

Page 109: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

there is no right subtree of E & at list root of subtree T1

that is B, the resulting list of elements after traversing

the left subtree in postorder is as follows

B

T1

T3

D

E

T4

T7

F

♦ The final list of elements after traversing binary tree is

as follows,

D, F, E, B, G, I, J, H, C, A.

♦ Postorder traversal of binary tree as defined as follows,

Traverse the left subtree in postorder.

Traverse the right subtree in postorder.

Process the root node.

Algorithm for Postorder Traversal of Binary Tree. :-

Variable:-

♦ Same as preorder.

• Step-1:-(Repeat step 2,3,4 & check that temproot is equal

to NULL)

♦ If temproot is not equal to NULL then

• Step-2:- (Call function itself as a left most node)

♦ Postorder(left(temproot))

• Step-3:- (Call function itself as a right most node)

♦ Postorder(right(temproot))

• Step-4:-(Output the information part of node)

Page 110: Data Structure Material

www.gtuking.blogspot.com

♦ Info(temproot)

• Step-5:-(Stop)

Application of Binary Tree:-

There are three types of Binary tree application

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

53

Page 111: Data Structure Material

www.gtuking.blogspot.com

Atmiya Infotech Pvt. Ltd.

• Manipulation of Arithmetic operation.

• Symbol table constructor.

• Syntax analysis.

MANIPULATION OF ARITHMETIC OPERATION

We will first discuss the relationship between binary tree &

formulas in prefix or suffix notation. Next we will discuss the

mechanical manipulation of expressions that are represented

by binary tree.

We observe that the formulas in reverse polish notation are

very useful in the compilations process.

There is a close relationship between binary tree & formulas

in prefix or suffix notation.

Lets write any where the left & right subtree are as the left &

right operands of the tree are the variable & constants in the

expression.

We may want to symbolically add, subtract, multiply, divide,

differential, integrate etc. such expressions.

Symbolic table Construction:-

One of the criteria that a symbol table routine must meet is

that the table searching must be performed efficiently.

The two required operations that must be performed on

symbol table are insertion & look-up each of which involves

searching.

A binary tree structure is chosen for two reasons.

The first reason is if the symbol entries as encountered one

uniformly distributed according to lexico graphic order

Second a binary tree is easily maintained in lexico graphic

Order in the sense that only a few paints need to be changed.

Also the message needs to be sent to receiving computer in

the same order in which they are created i.e. FIFO (First In

First out) order.

Y

Page 112: Data Structure Material

www.gtuking.blogspot.com

ogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

54

Page 113: Data Structure Material

www.gtuking.blogspot.com

Graphs

1) Graph:-

2) Node: -

3) Structure: -

4) Forest: -

Atmiya Infotech Pvt. Ltd.

A graph G consists of a non-empty set V called the set

of nodes of the graph a set E which is the set of edge

of the graph & a mapping from the set of edges E to a

set of pairs of elements of V.

Or

A graph consists of a set of nodes & a set of edges. A

pair of nodes specifies each edge in a graph.

A graph G consists of non empty set V called the set

of Nodes of the graph.

Structure is a user define data type that allows the user to perform certain(several) operations on to the

different types of DATA TYPES.

A set of disjoint tree is called the Forest.

5) Weighted Graph: - A graph in which weights are assigned to every edge is called a weighted graph.

6) Sling: - An edge of a graph, which joins a node to itself, is

called a Sling.

7) Complete Graph: - A graph is complete or completely connected if and

only if every pair of vertices are connected in at list

one direction.

8) Mixed Graph: - If some of the edges are directed and some of the

edges are undirected in a graph then the graph is

Page 114: Data Structure Material

www.gtuking.blogspot.com

called Mixed graph.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681

55

Page 115: Data Structure Material

www.gtuking.blogspot.com

9) Pointer: -

Atmiya Infotech Pvt. Ltd.

Pointer is a one type of utility which is provided by the „C‟ Language that can store the address of the any

particular node.

10)

11)

12)

13)

14)

15)

16)

Page 116: Data Structure Material

www.gtuking.blogspot.com

Isolated Vertex: - In a graph,

which is not

adjacent to

any other

node is

called Isolated

vertex.

Loop: -

An edge of a

graph, which

joins a node

to itself, is

called a Loop

. The direction of loop of no

significance, hence it can

be considered

either a directed or undirected

edge.

Directed Graph: -

A graph is called a directed graph if each edge is

identified by ordered pay of vertices (vi, vj) Undirected graph the first element of the pair is

called the start vertex and the second element is called the end vertex of the edge. The edge is set to be directed from the start vertex to the end

vertex therefore the pairs (vi, vj) and (vj, vi) represent two different edges in a directed graph.

Undirected Graph:-

In Graph G=(V,E) an edge which has no specific

direction is called an Undirected edge. A graph in which every edge is undirected is called

Undirected graph.

Acyclic: -

A directed graph is acyclic if it has no cycles.

Otherwise graph is known as cyclic graph.

Outdegree of node: -

The outdegree of vi is the number of edges whose

start vertex is vi.

Indegree of node: -

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681 56

Page 117: Data Structure Material

www.gtuking.blogspot.com

17)

18)

19)

20)

21)

22)

23)

24)

25)

Page 118: Data Structure Material

www.gtuking.blogspot.com

Atmiya

Infotech Pvt.

Ltd.

The no of

edges which

have V as

their

terminal

node is

called the

Indegree of V.

Total-Degree of node:

-

The sum of

the outdegree

& indegree of

a node V is

called its Total degree.

Null graph: -

A graph

containing

only isolated

node is called Null

graph.

Initiating

(Originating) &

Terminating (Ending)

Nodes:-

Let (V,E) be a

graph & let

XEE be a

directed edge

associated

with the ordered pair of nodes (u,v). Then

the edge X is said to be initiating or originating in the

node u & terminating or ending in the node V.

Multi Graph: -

Any graph, which contains some parallel edges, is

called a Multi graph.

Simple Graph: -

If there is no more than one edge between a pair

of nodes, then such a graph is called a simple

graph.

Length: -

The no of edges appearing in the sequence of a

path is called the length of the path.

Simple Path: -

A path in a digraph in which the edges are distinct is

called a simple path (edge simple).

Elementary path A path in which all the nodes through which it

traverses are distinct is called an elementary path.

Directed Tree: -

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681 57

Page 119: Data Structure Material

www.gtuking.blogspot.com

26)

Cyclic: -

Atmiya Infotech Pvt. Ltd.

A directed tree is an acyclic digraph which has one node called its root, with indegree 0, while all other

nodes have indegree 1.

A path which originates & ends in the same node is

called a cycle.

27)

28)

29)

30)

31)

32)

33)

34)

Terminal node: - In a directed tree, any node, which has outdegree 0, is called a terminal node or a leaf all other nodes are

called branch node.

Root: - A cyclic digraph, which has one node, called its root.

Ordered Tree: - If in a directed tree an ordering of the nodes at each

level is prescribe, then such a tree is called an

ordered tree.

Binary Tree: - A binary tree is a finite set of elements that is either

empty or is partitioned into three disjoint subsets.

Successor & Predecessor: - A node n is adjacent to a node m if there is an edge

from m to n. If n is adjacent to m, n is called a successor of m & m a predecessor of n.

DAG: - A directed acyclic graph is called a DAG from its acronym.

M-Ary Tree: - If in a directed tree the outdegree of every node is less than or equal to m, then the tree is called an m-

ary tree.

Sub tree: - A tree contains one or more nodes such that one of

Page 120: Data Structure Material

www.gtuking.blogspot.com

the nodes is called the

root while all other nodes

are partitioned

into a finite number of trees called sub

tree.

“Yogidham”, Kalawad Road, Rajkot. Ph : 572365, 576681 58

Page 121: Data Structure Material

www.gtuking.blogspot.com

35)

36)

Atmiya Infotech Pvt. Ltd.

Descendent: - Every node that is reachable from a node, say u, is called a descendent of u

Siblings: - Children of the same parent are called the siblings.

Page 122: Data Structure Material

www.gtuking.blogspot.com

“Yogidham”, Kalawad

Road, Rajkot. Ph :

572365, 576681 59