**Data Structures and Algorithm Analysis**

1. How much memory will the following structures take up? Hint: int takes 4 bytes, float takes 4 bytes, char takes 1 byte. – 9 points

a. struct Structure1 {int a,b,c,d,e[10]; float f;};

b. struct Structure2 {int a[12]; float b[5];};

c. struct Structure3 {char a[10][12][4], b[5][5], c[10];};

2. Show the steps when sorting (smallest to largest) the following arrays of numbers using **selection sort** i.e. every time a swap occurs, show what the current state of the array looks like, including the final sorted array. – 12 points

a. [10, 2, 5, 8, 9, 1, 4, 7]

b. [7, 1, 3, 2, 5, 4, 8, 12, 9]

c. [8, 7, 6, 5, 4, 3, 2, 1]

d. [5, 3, 8, 1, 9, 4, 2, 6]

3. Big-O: What is meant by f(n) = O(g(n))? Give the definition and then explain what it means in your own terms. – 5 points

4. Big-Omega: What is meant by f(n) = Ω(g(n))? Give the definition and then explain what it means in your own terms. – 5 points

5. Show that , make sure you use the definition and justify the inequalities and constants used. – 4 points

6. Show that , make sure you use the definition and justify the inequalities and constants used. – 4 points

7. Show that , make sure you use the definition and justify the inequalities and constants used. – 4 points

8. Show that , make sure you use the definition and justify the inequalities and constants used. – 4 points

9. Show that , make sure you use the definition and justify the inequalities and constants used. – 4 points

10. What principle governs how you add/remove elements in a stack? Spell it out and briefly explain. – 4 points

11. Briefly describe an application of a stack. – 4 points

12. What principle governs how you add/remove elements in a queue? Spell it out and briefly explain. – 4 points

13. Briefly describe an application of a queue. – 4 points

Consider the following graph (pseudocode for BFS and DFS given on page 9):

14. Write the order in which the nodes would be visited in when doing a **breadth first search (BFS)** traversal starting at **node 4**. Also, write the distances from 4 to every other node. – 6 points

15. Write the order in which the nodes would be visited in when doing a **breadth first search (BFS)** traversal starting at **node 5**. Also, write the distances from 5 to every other node. – 6 points

Same graph (for your convenience):

16. Write the order in which the nodes would be visited in when doing a **depth first search (DFS)** traversal starting at **node 4 (order discovered or order off the stack)**. – 6 points

17. Write the order in which the nodes would be visited in when doing a **depth first search (DFS)** traversal starting at **node 5 (order discovered or order off the stack)**. – 6 points

18. Give the definition of a graph. – 5 points

19. Give the definition of a tree (from graph theory). – 4 points

**BFS Pseudocode (for graph with n vertices):**

Input: grapharray[n][n], source

queue<int> Q

int distance[n] (array to keep track of nodes distances (from source), all values set to -1 except source which is set to 0 i.e. -1 = not visited)

Q.push(source)

while(Q is not empty)

v = Q.front

Q.pop()

for each neighbor w of v

if distance[w] = -1

print w

distance[w] = distance[v]+1

Q.push(w)

end if

end for

end while

**DFS Pseudocode (for graph with n vertices):**

Input: grapharray[n][n], source

stack<int> S

int visited[n] (array to keep track of nodes visited, all values set to 0 except source which is set to 1 i.e. 0 = not visited, 1 = visited)

S.push(source)

while(S is not empty)

v = S.top

S.pop()

for each neighbor w of v

if visited[w] = 0

print w

visited[w] = 1

S.push(w)

end if

end for

end while

Bonus (4 points): Show *all *of the steps (splitting and merging) when using mergesort to sort (smallest to largest) the following array (they are the numbers 1 through 16):

[16, 1, 15, 2, 14, 3, 13, 4, 12, 5, 11, 6, 10, 7, 9, 8]

Bonus (2 points): describe how you could implement a queue using 2 stacks.

Bonus (4 points) Draw the binary search tree that would be constructed by inserting the following values in the exact order given (starting with an empty tree i.e. first value will be the first node in the tree): –

a. Binary Search Tree A: 8, 9, 2, 7, 1, 10, 3, 5, 6, 4

b. Binary Search Tree B: 10, 7, 9, 12, 4, 2, 5, 3, 1, 14, 11, 19, 13, 18, 20

The price is based on these factors:

Academic level

Number of pages

Urgency

Basic features

- Free title page and bibliography
- Unlimited revisions
- Plagiarism-free guarantee
- Money-back guarantee
- 24/7 support

On-demand options

- Writer’s samples
- Part-by-part delivery
- Overnight delivery
- Copies of used sources
- Expert Proofreading

Paper format

- 275 words per page
- 12 pt Arial/Times New Roman
- Double line spacing
- Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Delivering a high-quality product at a reasonable price is not enough anymore.

That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.

Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.

Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.

Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.

Read more