0% found this document useful (0 votes)
16 views26 pages

Data Structure Test Paper 1 Solution1

The document provides an overview of data structures, including definitions, operations, algorithms, and complexities associated with various data structures such as arrays and linked lists. It explains key concepts like insertion, deletion, searching, sorting, and the complexities of algorithms like bubble sort and binary search. Additionally, it discusses applications of data structures and provides algorithms for manipulating them.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views26 pages

Data Structure Test Paper 1 Solution1

The document provides an overview of data structures, including definitions, operations, algorithms, and complexities associated with various data structures such as arrays and linked lists. It explains key concepts like insertion, deletion, searching, sorting, and the complexities of algorithms like bubble sort and binary search. Additionally, it discusses applications of data structures and provides algorithms for manipulating them.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

www.ashekalaziz.wordpress.

com
Data Structure

Test Paper 1

1(a) What is Data Structure? Briefly explain the operations of data structures.

Answer:

The logical and mathematical model of a particular organization of data is called Data Structure. Data
structure should be simple enough so that it can easily be processed when necessary and data should
bear the relationship with the real world scenario. The operations on the data structures are –

(i) Insertion: Inserting a new item or data or information into the structure.
(ii) Deletion: Removing an item or data or information from the structure.
(iii) Traversing: If there is collection of data items, then accessing each data item exactly once
sometimes called visiting each node or element sequentially.
(iv) Searching: Finding some particular data item or information among the collection of
information satisfying specific precondition.
(v) Sorting: arrangement of data items in specific order like ascending order or descending
order of integer contents or names in alphabetical order etc.
(vi) Merging: If there two different list of elements, then both can be combined together to
form a new list of elements. Here both the list can in sorted order and newly formed
combined list should also be in sorted manner.

We should remember that Sorting and Merging are the operations on data structures in special
case. [Source: Seymour Lipschutz]

(b) Define algorithm and complexity of an algorithm.

Answer:

The term algorithm comes from ‘or’, ‘go’ and ‘rythm’. Algorithm is a set of tasks which proceeds
sequentially until desired result is obtained or a well defined problem is solved. The first algorithm
was devised by Abu Musa Al-Zaber Al Kwarizmi to find the result of Greatest Common Division of
few integers. [Source: Knuth]

If we think to find a particular data item in an array using sequential searching i.e. visiting each
element from the beginning and accessing the immediate next element successively until we get out
desired element then the time required to find the data item depends on the number of elements in the
list sometimes called the size of the data or input size to the searching algorithm. If the size is
smaller, much time may not be required to catch the desired data object but if the size is large then
time will be much more consumed obviously. This is called complexity of algorithm. We should
remember that running time of algorithm and size of the data for operation are two constraints of

Page 1 of 26
www.ashekalaziz.wordpress.com
algorithm complexity and complexity can be expressed as a function of either time or space. [Ref:
Seymour Lipschutz]

Another important fact is that if the desired data item is resided in the very beginning of the list then
whatever may be the the size of the list, time requirement is the minimum but if would be in the last
element even unavailable then time requirement will be the maximum to finish the traversal. These
are the best case and worst case respectively. But we are generally concerned with the average cases
that desired element might be in between the start and end position of the data list and probability to
find the item. Experts concern about the algorithm modification to optimize the time requirements.
[Ref: Seymour Lipschutz , Shahani]

(c) Explain the complexity of Bubble sort, linear search and binary search.

Answer:

Linear Search:

Let us consider that n number of elements in an array. We want to find a desired element which even
may not be in the list. If complexity of input size n can be written as C(n) then it should be equal to n
in this case all n elements should be visited but no findings. C(n)= n. This is the worst case
consideration. Now we consider the average case consideration the desired data item can be found
within the list and the probability to find in each element accessing are equally likely. Then the
probability p=1/n. If we multiply this probability for each element visit as 1st element, 2nd element, …
… , nth element and sum up then we can get the complexity.

1 1 1 1
( ) = 1. + 2. + 3. + … + .

1
= (1 + 2 + 3 + ⋯ + ).

( + 1) 1
= .
2
+1
=
2

Using big O notation, we can write the complexity as O(n).

Binary Search:

The principle of binary search reduces the size of the searching domain of data collection half in each
pass. That is why we require at most comparisons f(n) to find the desired item as
( )
2 > or equivalently ( ) =< ⌊ ⌋+1

Page 2 of 26
www.ashekalaziz.wordpress.com
Running time of worst case is approximately equal to which is approximately equal to running
time of average case.

For example, if input size is 1000000 then only 20 comparisons are required to find the required data
item.

2 > 1000 = 1000000

Bubble Sort:

According to Bubble sort algorithm, if we want to sort list of data items in ascending order then (n-1)
number of comparisons are done in first pass. Then the highest element is placed in far right position.
(n-2) number of comparisons is done in second pass and next highest element is placed before the
highest element at the far right, similarly the third, fourth and so on. Mathematically we can wirte,

( − 1) −
( ) = ( − 1) + ( − 2) + … … + 2 + 1 = =
2 2

Using big O notation we can write the complexity as O( ). [Source: Seymour Lipschutz]

(d) What are the applications of data structure?

Answer:

If we have several students named ‘Ehsan Topu’, ‘Raian Islam’, ‘Iffat Ara’, ‘Fahima Akhter’ and
‘Shahadat Hossain’ then these names can be stored in a computer memory as follows. This is an
application of one dimensional array of STUDENT names.

Ehsan Topu
Raian Islam
Iffat Ara
Fahima Akhter
Shahadat Hossain

STUDENT

Let us consider a table of data consists of above students with their roll numbers and departments
where they study. An array of records is devised below for such representation.

Page 3 of 26
www.ashekalaziz.wordpress.com
Roll No Names Department
1101 Ehsan Topu Business Admin
2106 Raian Islam Computer Science
2107 Iffat Ara Computer Science
3208 Fahima Akhter Electronics
4309 Shahadat Hossain Architecture

STUDENT

A linked representation of above tabular information is shown below.


Roll No Names Pointer
Department
1101 Ehsan Topu 1
Business Admin 1
2106 Raian Islam 2
Computer Science 2
2107 Iffat Ara 2
Electronics 3
3208 Fahima Akhter 3
Architecture 4
4309 Shahadat Hossain 4

STUDENT

Now let us look a hierarchical representation of above record.

Student

Roll No Name Address Department

First name Last name House No Street City

2(a) What is an array? Describe the representation of one dimensional array in memory.

Answer:

An array is a list of data elements of single type either integer or real or character. No multiple types
of data can be stored in an array. An array has fixed size i.e. the number of elements it can hold is
fixed. For example, an array is declared with name DATA that consist of N number of integer values.

Page 4 of 26
www.ashekalaziz.wordpress.com
First element can be accessed as DATA[1], second as DATA[2] and so on. This is a one dimensional
array. In computer memory, it is represented as follows.

DATA[1]
DATA[2]
DATA[3]
DATA[3]
.
.
.
.
.
.
.
.
DATA[N]

(b) Write the down the algorithm of Bubble Sort. Suppose that following numbers are stored in an
array.

DATA: 7, 18, 25, 2, 6, 12, 9. Sort the array of DATA in descending order using Bubble Sort.

Answer:

Bubble sort algorithm:

BUBBLE(DATA, N)

Here DATA is an array with N elements. This algorithm sorts the elements in ascending order in
DATA.

1. Repeat Step 2 and 3 for K=1 to N-1


2. Set PTR=1 [Initialize pass pointer PTR]
3. Repeat while PTR ≤ N-K [Execute pass]
(a) If DATA[PTR]>DATA[PTR+1] then

Interchange DATA[PTR] and DATA[PTR+1]


[End of if structure]
(b) Set PTR=PTR+1
[End of inner loop]
[End of Step 1 outer loop]
4. Exit
[Source: Seymour Lipschutz]

Page 5 of 26
www.ashekalaziz.wordpress.com
Dry Run:

DATA: 7, 18, 25, 2, 6, 12, 9


DATA: 18, 7, 25, 2, 6, 12, 9
DATA: 18, 25, 7, 2, 6, 12, 9
DATA: 18, 25, 7, 2, 6, 12, 9
DATA: 18, 25, 7, 6, 2, 12, 9
DATA: 18, 25, 7, 6, 12, 2, 9
DATA: 18, 25, 7, 6, 12, 9, 2

DATA: 18, 25, 7, 6, 12, 9, 2


DATA: 25, 18, 7, 6, 12, 9, 2
DATA: 25, 18, 7, 6, 12, 9, 2
DATA: 25, 18, 7, 6, 12, 9, 2
DATA: 25, 18, 7, 12, 6, 9, 2
DATA: 25, 18, 7, 12, 9, 6, 2

DATA: 25, 18, 7, 12, 9, 6, 2


DATA: 25, 18, 7, 12, 9, 6, 2
DATA: 25, 18, 7, 12, 9, 6, 2
DATA: 25, 18, 12, 7, 9, 6, 2
DATA: 25, 18, 12, 9, 7, 6, 2

DATA: 25, 18, 12, 9, 7, 6, 2

DATA: 25, 18, 12, 9, 7, 6, 2

DATA: 25, 18, 12, 9, 7, 6, 2

DATA: 25, 18, 12, 9, 7, 6, 2

Here the data set is sorted in descending order within first three passes.

(c) Write down the algorithm to delete an item from an array.

Answer:

DELETE(DATA, N, K, ITEM)

Here DATA is a linear array with N elements and K is a positive integer such that K ≤ N. This
algorithm deletes the Kth element from DATA.

1. Set IITEM = DATA[K]


2. Repeat for J = K to N-1

Page 6 of 26
www.ashekalaziz.wordpress.com
Set DATA[J] = DATA[J+1] [Move (J+1)st element upward]
[End of loop]
3. Set N = N-1[Reset the number N of elements in DATA]
4. Exit
[Source: Seymour Lipschutz]

(d) Consider a 22×5 matrix array called SCORE. Suppose Base (SCORE)=300 and there are w = 4
words per memory cell. If the programming language stores two dimensional arrays using row major
order, then what is the address of SCORE[15, 4]?

Answer:

For two dimensional array, we know that to find the address of the location in the array A at [J, K]
cell for row major order,

LOC(A[J, K]) = Base(A) + w[n(J-1) + (K-1)]

Here, Base(A)=300
J=15, K=4
w=4
n=5 since m×n array is 22×5 is given

Therefor, LOC(A[15, 4]) = Base(A) + w[n(J-1) + (K-1)]


= 300 + 4[5(15-1)+(4-1)]
= 300 + 4×73
= 592

3(a) Write down the algorithm to insert a new ITEM in any node of a linked list.

Answer:

Algorithm: [Source: Seymour Lipschutz]

INSLOC(INFO, LINK, START, AVAIL, LOC, ITEM)

This algorithm inserts ITEM so that ITEM follows the node with location LOC or inserts ITEM as the
first node when LOC=NULL

1. If AVAIL=NULL, then Write: Overflow and Exit. [Overflow?]


2. Set NEW=AVAIL and AVAIL=LINK[AVAIL] [Remove first node from avail list]
3. Set INFO[NEW]=ITEM [copies new data into new node]
4. If LOC=NULL then Set LINK[NEW]=START and START=NEW [insert as first node]
Else Set LINK[NEW]=LINK[LOC] and LINK[LOC]=NEW [insert after node with location]
[End of if structure]
5. Exit

Above algorithm’s operation is graphically illustrated below.

Page 7 of 26
www.ashekalaziz.wordpress.com
Initial:

START
LOC Node B

AVAIL

Step 3:
NEW

ITEM

Step 4:
NEW

Node B
START
LOC

(b) The following list of names is assigned (in order) to a linear array INFO: Maisha, Jannatul,
Brishty, Papia, Dina, Aditi, Kaniza, Nusaiba, Rinki, Eron, Shahnima, Halima. That is
INFO[1]=Maisha, INFO[2]=Jannatul, … … … … … , INFO[12]=Halima.

Assign the value to an array LINK and variable START so that INFO, LINK and START from an
alphabetical order of listing of the names.

Answer:

Page 8 of 26
www.ashekalaziz.wordpress.com
START
INFO LINK

Aditi

Brishty

Dina

Eron

Halima

Jannatul

Kaniza

Maisha

Nusaiba

Papia

Rinki

Shahnima NULL

(c) What do you mean two-way linked list? Explain with example.

Answer:

A two-way linked list is a linear linked list consists of nodes with three fields – (i) An information
field that contains data; (ii) A pointer field that contains the location of next node in the list and (iii)

Page 9 of 26
www.ashekalaziz.wordpress.com
Another pointer field that contains the location of the previous node in the list. A two-way linked list
is depicted below.

INFO field of node N

BACK pointer field of node N

FIRST FORW pointer field of node N LAST

× ×

Example:

NAME FORW BACK


FIRST

5 1 Kirk 7 8
2 6
LAST 3 Dean 11 5
9 4 Maxwell 12 7
5 Adams 3 0
AVAIL 6 0
10 7 Lane 4 1
8 Green 1 11
9 Samuels 0 12
10 2
11 Fields 8 3
12 Nelson 9 4

[Source: Seymour Lipschutz]

(d) Define with necessary figures for ‘grounded header list’ and ‘circular header list’.

Answer:

Page 10 of 26
www.ashekalaziz.wordpress.com
A ‘grounded header linked list’ is nothing but the simple linear linked list where the last node’s LINK
field contains NULL value i.e. does not point any new node. And a ‘circular header list’ is linked list
which last node’s LINK field contains the address of the header node i.e. last node points the header
node. Both type of lists are depicted below.

START

Header
Node
×

Figure: A grounded header linked list


START

Header
Node
×

Figure: A circular linked list

4(a) Define OVERFLOW and UNDERFLOW condition of a stack.

Answer:

We know that stack is a data structure in which data should be inserted and deleted only at one end.
Obviously a stack has specific size i.e. number of elements it can hold. When one element is pushed
into stack then it is placed at the available cell towards bottom and successive elements on the above
free cell of the previous elements placed. In this sequence, if the top position is occupied by some
element then the stack is full and if a programmer wants to push a new element into the data stack, the
OVERFLOW condition occurs as no free cell is available in the stack.

On the other hand, if a programmer wants to delete or pop an element from the stack, the element at
the top should come first and the successive elements toward the bottom. In a case occurs when no
elements are in the stack i.e. stack is empty but the programmer wants to delete or pop an element
then the condition of UNDERFLOW occurs. [Ref. Seymour Lipschutz]

Page 11 of 26
www.ashekalaziz.wordpress.com
(b) What do you mean by ‘infix notation’ and ‘reverse polish notation’? Explain with example.

Answer:

If we have two operands A and B and the operator + then we write the arithmetic expression as A+B
which is known as infix notation. If we like to multiply an operand C with summation result of above
expression then we write (A+B)*C. We should remember that this expression is not equivalent to
A+(B*C), because order of precedence is different in two expressions.

Since using infix notation, the order of operations and operands are not uniquely defined for the order
of operations to be performed, Polish notation is used to avoid this ambiguity. The operator is written
before the operands, for example, +AB is written in Polish notation instead of A+B as written in infix
notation. For reverse Polish notation, the operator is written after the operands i.e. AB+. For infix
notation (A+B)*C we can write the reverse Polish notation as AB+C*. [Ref. Seymour Lipschutz]

(c) Convert the following arithmetic infix expression Q to equivalent postfix expression P.

Q: A+(B*C-(D/E↑F)*G)*H.

Answer:

A + ( B * C - ( D / E ↑ F ) * G ) * H )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Symbol Scanned Stack Expression P


(1) A ( A
(2) + (+ A
(3) ( (+( A
(4) B (+( AB
(5) * (+(* AB
(6) C (+(* ABC
(7) - (+( - ABC*
(8) ( (+( -( ABC*
(9) D (+( -( ABC *D
(10) / (+( -(/ ABC *D
(11) E (+( -(/ ABC *DE
(12) ↑ (+( -(/↑ ABC *DE
(13) F (+( -(/↑ ABC *DEF
(14) ) (+( - ABC *DEF↑/
(15) * (+( - * ABC *DEF↑/
(16) G (+( - * ABC *DEF↑/G
(17) ) (+ ABC *DEF↑/G*-
(18) * (+ * ABC *DEF↑/G*-
(19) H (+ * ABC *DEF↑/G*-H
(20) ) ABC *DEF↑/G*-H*+
[Source: Seymour Lipschutz]

Page 12 of 26
www.ashekalaziz.wordpress.com
(d) Find the value of A(1,3) using the definition of the Ackermann function.

Answer:

We know that the Ackermann function is

If m=0 and n≠0 then A(m, n)=n+1 … … … … … … … (i)

If m≠0 and n=0 then A(m, n)=A(m-1, 1) … … … … … (ii)

If m≠0 and n≠0 then A(m, n)=A(m-1, A(m, n-1)) … … (iii)

For A(1, 3) = A(1-1, A(1, 3-1)) [eq (iii)]

= A(0, A(1, 2))

= A(0, A(1-1, A(1, 2-1))) [eq (iii)]

= A(0, A(0, A(1,1)))

= A(0, A(0, A(1-1, A(1, 1-1)))) [eq (iii)]

= A(0, A(0, A(0, A(1,0))))

= A(0, A(0, A(0, A(1-1,1)))) [eq (ii)]

= A(0, A(0, A(0, A(0,1))))

= A(0, A(0, A(0, 1+1))) [eq (i)]

= A(0, A(0, A(0, 2)))

= A(0, A(0, 2+1)) [eq (i)]

= A(0, A(0, 3))

= A(0, 3+1) [eq (i)]

= A(0, 4)

= 4+1

= 5 [Source: Seymour Lipschutz]

5(a) Define Complete Binary trees and Extended Binary trees with example. Consider the following
algebraic expression E=(2x+y)(5a-b)3 . Draw the tree which corresponds to the expression E.

Answer:

In a binary tree, a node can have at most two children. A binary tree can be a complete binary tree if
all its levels have maximum number of possible nodes except possibly the last level. In the last level,
the nodes appear as far left as possible. Following T22 is a complete binary tree.

Page 13 of 26
www.ashekalaziz.wordpress.com
1

2 3

4 5 6 7

8 9 10 11 12 13 14 15

16 17 18 19 20 21 22

Figure: Complete binary tree T22

A binary tree becomes an extended binary tree or 2-tree when its’ each node either has 2 children or
no child. The nodes with 2 children are called ‘internal nodes’ and nodes with no child are called
‘external nodes’. An extended binary tree is shown below.

Figure: Extended binary tree or 2-tree

Page 14 of 26
www.ashekalaziz.wordpress.com
A tree is constructed below following the expression E=(2x+y)(5a-b)3

+ ↑

* y - 3

2 x * b

5 a

[Source: Seymour Lipschutz]

(b) What is Recursion? Write an algorithm which calculates Fibonacci series.

Answer:

Recursion or recursive procedure is procedure or function that calls itself from within the function.
The question is how such function is terminated. In order to avoid infinite looping in recursive
function, there should be some condition for which the function will not be called by itself. So two
most common properties of Recursion or recursive procedure are –

(i) There must be some criteria called base criteria for which the function or procedure does
not call itself. In function definition, there should be some specific base value for which
the function does not refer to itself. This is done for a recursive function to be well
defined.
(ii) Each time the procedure does call itself (directly or indirectly), it must be closer to base
criteria. In the argument list of the recursive function, new value is substituted where new
values are determined using mathematical expressions to be closer to the base value.

[Source: Seymour Lipschutz, Byron S Gottfried]

Algorithm to calculate Fibonacci series with recursive procedure:

FIBONACCI(FIB, N)

Page 15 of 26
www.ashekalaziz.wordpress.com
This procedure calculates FN and returns the value in the first parameter FIB.

1. If N=0 or N=1 then Set FIB = N and Return


2. Call FIBONACCI(FIBA, N-2)
3. Call FIBONACCI(FIBB, N-1)
4. Set FIB = FIBA + FIBB
5. Return

(c) Build a heap tree with different stages from the list of numbers 40, 30, 50, 22, 60, 55, 77 and 56.

Answer:

40 50
40

30 30 40

(a) ITEM = 40 (b) ITEM = 30 (c) ITEM = 50

50
60

30 40
50 40

22
22 30

(d) ITEM = 22 (e) ITEM = 60

60 77

50 55 60
50

22 30 40 40 55
22 30

(e) ITEM = 55 (e) ITEM = 77

Page 16 of 26
www.ashekalaziz.wordpress.com
77

56 60

50 30 40 55

22

(f) ITEM = 56

[Ref: Seymour Lipschutz]

(d) Briefly describe towers of Hanoi problem with example.

Answer:

Let us suppose there are 3 (three) disks and there are 3 (three) polls or pegs where the disks are placed
in one peg. We should remember that all disks are different in size and no bigger disk can be placed
upon smaller disk i.e. only smaller disk is placed upon bigger disks and all three disks are placed in
same fashion. The game is to transfer all three disks from source peg to destination peg using middle
peg as intermediate or auxiliary poll for halt. Whole game steps are shown below. Here number of
disk n=3 and three pegs are A, B and C.

A B C A B C

Initial A→C

A B C A B C

A→B C→B

Page 17 of 26
www.ashekalaziz.wordpress.com
A B C A B C

A→C B→A

A B C A B C

B→C A→C
[Ref: Seymour Lipschutz]

6(a) Suppose the following list of letters is inserted in order into an empty binary search tree.

J, R, D, G, T, E, M, H, P, A, F, Q

(i) Find the final tree T


(ii) Find the in order traversal of T

Answer:

(i)
J J J

R D R
Item = J Item = R Item = D

J J

D R D R

G G
T
Item = G
Item = T

Page 18 of 26
www.ashekalaziz.wordpress.com
J J

D R D R

G G M
T T

E E
Item = E Item = M

J J

D R D R

G M G M
T T

E H E H P

Item = H Item = P

D R

A G M
T

E H P

Item = P

Page 19 of 26
www.ashekalaziz.wordpress.com
J

D R

A G M
T

E H P

F
Item = F

D R

A G M
T

E H P

F Q
Item = Q

(ii) The result of the in order traversal of final tree is – A, D, E, F, G, H, J, M, P, Q, R, T

b) Write down the Warshall’s algorithm for a directed graph G with M nodes that finds the path
matrix P.

Answer:

Page 20 of 26
www.ashekalaziz.wordpress.com
Warshall’s algorithm: A directed graph G with M nodes is maintained in memory by its adjacency
matrix A. this algorithm finds the Boolean path matrix P of the graph G.

1. Repeat for I, J = 1,2, … …, M [Initializes P]


If A[I, J] = 0 then Set P[I, J] = 0;
Else Set P[I, J] = 1

[End of loop]

2. Repeat Steps 3 and 4 for K = 1,2, … … , M [Updates P]


3. Repeat Step 4 for I = 1, 2, … … , M
4. Repeat for J = 1, 2, … … , M
Set P[I, J] = P[I, J] ˅ (P[I, K] ˄ P[K, J])
[End of loop]
[End of Step 3loop]
[End of Step 2 loop]
5. Exit

[Source: Seymour Lipschutz]

(c) Consider the graph G in the following figure. Suppose nodes are stored in memory in an array
Data as follows.

DATA: X, Y, Z, W

X Y

W
Z

(i) Find the adjacency matrix A of graph G


(ii) Find the path matrix P of G using powers of the adjacency matrix A

Answer:
X Y Z W
0 0 0 1 X
1 0 1 1 Y
(i) =
1 0 0 1 Z
0 0 1 0 W

Page 21 of 26
www.ashekalaziz.wordpress.com
0 0 1 0 1 0 0 1 0 0 1 1
1 0 1 2 1 0 2 2 2 0 2 3
(ii) = = =
0 0 1 1 1 0 1 1 1 0 1 2
1 0 0 1 0 0 1 1 1 0 1 1

We know that = + + + …… +

Since we have four nodes in the graph G, we can consider m = 4

1 0 2 3
5 0 6 8
=
3 0 3 5
2 0 3 5

If we replace the nonzero entries in B matrix by 1, then we get the path matrix as follows.

1 0 1 1
1 0 1 1
=
1 0 1 1
1 0 1 1

[Source: Seymour Lipschutz]

(d) Find the number of spanning trees of the graph G as given below:

A B C

D E F

Answer:
A B C

Spamming
Tree 1

D E F

Page 22 of 26
www.ashekalaziz.wordpress.com
A B C

Spamming
Tree 2

D E F

A B C

Spamming
Tree 3

D E F

A B C

Spamming
Tree 4

D E F

A B C

Spamming
Tree 5

D E F

Page 23 of 26
www.ashekalaziz.wordpress.com
A B C

Spamming
Tree 6

D E F

A B C

Spamming
Tree 7

D E F

A B C

Spamming
Tree 8

D E F

A B C

Spamming
Tree 9

D E F

Page 24 of 26
www.ashekalaziz.wordpress.com
A B C

Spamming
Tree 10

D E F

A B C

Spamming
Tree 11

D E F

A B C

Spamming
Tree 12

D E F

A B C

Spamming
Tree 13

D E F

Page 25 of 26
www.ashekalaziz.wordpress.com

A B C

Spamming
Tree 14

D E F

A B C

Spamming
Tree 15

D E F

Page 26 of 26

You might also like