0% found this document useful (0 votes)
63 views

Data Structures Midterm Exam Model Answer

This document contains a midterm exam for a data structures course. The exam consists of 4 questions testing knowledge of concepts like linked lists, stacks, time complexity analysis, and implementing functions on different data structures.
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)
63 views

Data Structures Midterm Exam Model Answer

This document contains a midterm exam for a data structures course. The exam consists of 4 questions testing knowledge of concepts like linked lists, stacks, time complexity analysis, and implementing functions on different data structures.
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/ 7

lOMoARcPSD|35808209

Data Structures midterm exam model answer

datastructure (‫)سيوسلا ةانق ةعماج‬

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Abdalrahman Tony ([email protected])
lOMoARcPSD|35808209

Suez Canal University


Faculty of Computers and Informatics
Computer Science Department

Course Name: Data Structures Date:2-12-2020


Course Code: CS513 Time allowed: 1.5 hours
Year: 2nd year No. of Pages: 2 pages
Semester: First Total marks: 20

Midterm Exam – Academic Year 2020-2021


Answer all the following questions.
Question 1: Choose the correct answer.

1. Suppose p refers to a node in a linked list (using the Node class). Which Boolean expression
will be true when p refers to the second node of the list?
a) p==head->next; b) p ==head ;
c) p->next == NULL ; d) None of these.

2. Which Boolean expression indicates whether the data in the two nodes referred by p and q are
different? Assume that neither p nor q is NULL.
a) p->info!=q->info; b) p->next == q->next ;
c) p->info == q->info ; d) None of these.

3. Consider the usual algorithm for determining whether a sequence of parentheses is balanced.
What is the maximum number of parentheses that will appear on the stack AT ANY ONE
TIME when the algorithm analyzes: (( )( )(( )))?
a) 1 b) 3
c) 2 d) 4

4. Consider the following algorithm:


declare a stack of characters
while ( there are more characters in the word to read )
{ read a character and push the character on the stack }
while ( the stack is not empty )
{ pop a character off the stack and write the character to the
screen }

What is written to the screen for the input "school"?


a) school b) sscchhooooll
c) loohcs d) None of these

5. Which of the following stack operations could result in stack overflow?

a) isEmpty b) pop
c) push d) none of these

Question 2:

Page 1 of 2

Downloaded by Abdalrahman Tony ([email protected])


lOMoARcPSD|35808209

1. Write a function called MergeArrays that takes two integer arrays as its arguments and
returns a new array which contains all elements in the two arrays without duplicates. Then
compute the time complexity T(n) of your code.

Function T(n)
void MergeArrays(int a[],int b[],int n,int m)
{
int c[n+m];
int i,j,k,flag;
for(i=0;i<n;i++) 1+(n+1)+n
c[i]=a[i]; n
for(j=0;j<m;j++) 1+(m+1)+m
{
flag=0; m
for(int k=0;k<n;k++) m*(1+n+1+n)
{
if(a[k]==b[j]) m*n
flag++; m*n
}
if(flag==0) m
c[i++]=b[j]; 2*m
}
}
1+(n+1)+n+n+1+(m+1)+m+
T(n) m+m*(1+n+1+n)+m*n+
m*n+m+2*m

2. What is the time complexity T(n) of the following codes:

a) int a = 0; 1 T(N)=1+1+(N+1)+N+
for (i = 1; i < N+1; i++) 1+(N+1)+N N*(1+(N+1)+N)+
for (j = N+1; j > 1; j--) N*(1+(N+1)+N) 3*N*N=O(N2)
a = a + i + j; 3*N*N
b) if(c > b) 1 T(n)=1+1+(n+1)+n+
{ n*(1+(n+1)+n)
for(j=1; j<=n ; j++) 1+(n+1)+n 3*n*n=O(n2)
a[i]+=j; 2n
}
else
{
for(j=1 ; j<=n ; j++) 1+(n+1)+n
for(k=1 ; k<n ; k++) n*(1+(n+1)+n)
a[i]=k*j; 3*n*n
}

Page 2 of 2

Downloaded by Abdalrahman Tony ([email protected])


lOMoARcPSD|35808209

Question 3:

a) Write a function void pushOdd(Stack *s, int data) that pushes data into the stack s only if it is odd.

b) Convert the following infix expression: a-b/c+(d*(e/f))*g to postfix expression. Then explain how to
use the stack to evaluate this postfix expression.

Postfix expression: abc/-def/*g*+

Page 3 of 2

Downloaded by Abdalrahman Tony ([email protected])


lOMoARcPSD|35808209

Page 4 of 2

Downloaded by Abdalrahman Tony ([email protected])


lOMoARcPSD|35808209

Question 4:

Using the Node, List and CircularList classes, write the following functions:

1. void deleteEven (List l) which deletes every even data from a single linked list.

Page 5 of 2

Downloaded by Abdalrahman Tony ([email protected])


lOMoARcPSD|35808209

2. int count (CircularList l) which counts the number of nodes in a circular list and returns it.

Dr. Safa Abd El-aziz

Page 6 of 2

Downloaded by Abdalrahman Tony ([email protected])

You might also like