Select Your Subject Code

CS001 CS408 CS602 CS619 CS710 CS724 MGT101 MGT501 MGT610 MTH001 MTH603 ECO401 ENG001 STA301 PAK301 PHY101 ACC311
CS101 CS410 CS604 CS701 CS711 CS726 MGT201 MGT502 MGT611 MTH100 MTH201 ECO402 ENG101 STA630 PAK302 PHY301 ACC501
CS201 CS501 CS605 CS702 CS712 CS305 MGT211 MGT503 MGT613 MTH101 MTH203 ECO403 ENG201 STA730

CS301 CS502 CS606 CS703 CS713 CS411 MGT301 MGT510 MGT619 MTH202 MTH311 ECO404 ENG301

CS302 CS504 CS607 CS704 CS716 CS412 MGT401 MGT520 MGT620 MTH301 MTH502 ECO406 ENG401

CS304 CS506 CS609 CS706 CS718 CS413 MGT402 MGT601 MGT703 MTH302

CS401 CS507 CS610 CS707 CS720 CS509 MGT404 MGT602 MGT704 MTH401

CS402 CS508 CS614 CS708 CS721 CS621 MGT411 MGT603 MGT705 MTH501

CS403 CS601 CS615 CS709 CS723 CS622 MGT501 MGT604 MGT711 MTH601

CS301 Assignment No. 2 Solution Fall 2016


CS301 Assignment No. 2 Fall2016

CS301 - Data Structures Assignment No. 2 Solution Fall 2016 Due Date: Nov 29, 2016
CS301 Assignment No. 2
Semester: Fall 2016
CS301 – Data Structures
CS301 Assignment Total Marks: 20
CS301 Assignment Due Date: Tuesday, November 29, 2016

Also Read: CS502 Assignment No. 02 Solution Fall 2016

CS301 Assignment Instructions

Please read the following instructions carefully before submitting assignment:
It should be clear that your assignment will not get any credit if:

  • Assignment is submitted after due date.
  • Submitted assignment does not open or file is corrupt.
  • Assignment is copied (From internet/ to from students).
For clarity and simplicity, You are required to Upload/Submit only ONE .CPP file. Other format will not be accepted and will be graded zero marks.
Note: Use ONLY Dev-C++ IDE for writing and executing your code.

Also Read : Free Microsoft Office Specialist (MOS) for Virtual University

CS301 Assignment Objectives:

The purpose of this assignment is to make you familiar with following topics:
  • Tree
  • Binary Tree
  • Terminologies of a Binary Tree
  • Level
  • Complete Binary Tree
  • Level of a Complete Binary Tree
Also Read: PM Laptop Scheme for Virtual University Students 2016-17

CS301 Assignment Submission Instructions

You have to submit only .cpp on the Assignments interface of CS301 at VULMS. Assignment submitted in any other format will not be accepted and will be graded zero marks.

CS301 Assignment No. 2

Marks= 20

CS301 Assignment Question 1: 

Write down C++ code to create a complete binary Tree in which user can add any number of node/elements (Numeric). After Creating a complete binary tree , You need to calculate the product of the 2nd lowest level and find the smallest number in the binary tree as given in the example:

CS301 Assignment No. 2 Solution Fall 2016

Product of Elements in 2nd last level (N-1)= 20

Smallest number in Binary Tree = 2

Note: N levels mean any number of levels.

CS301 Assignment Deadline:

Your assignment must be uploaded on or before Tuesday, November 29, 2016. We shall not accept your solution through email after the due date.

Also Read: financial accounting MGT101 Solved Papers

CS301 Assignment No. 2 Solution Fall 2016

Here You can download CS301 Assignment No. 2 Solution & Discussion for Fall 2016.

CS301 Assignment No. 2 Solution

#include <stdio.h>
#include <iostream>
using namespace std;
struct Node
int val;
struct Node *left, *right;
Node *newNode(int data)
Node *temp = new Node;
temp->val = data;
temp->left = temp->right = NULL;
return temp;
// A utility function to find deepest leaf node.
// lvl: level of current node.
// maxlvl: pointer to the deepest left leaf node found so far
// isLeft: A bool indicate that this node is left child of its parent
// resPtr: Pointer to the result
void deepestLeftLeafUtil(Node *root, int lvl, int *maxlvl,
bool isLeft, Node **resPtr)
// Base case
if (root == NULL)
// Update result if this node is left leaf and its level is more
// than the maxl level of the current result
if (isLeft && !root->left && !root->right && lvl > *maxlvl)
*resPtr = root;
*maxlvl = lvl;
// Recur for left and right subtrees
deepestLeftLeafUtil(root->left, lvl+1, maxlvl, true, resPtr);
deepestLeftLeafUtil(root->right, lvl+1, maxlvl, false, resPtr);
// A wrapper over deepestLeftLeafUtil().
Node* deepestLeftLeaf(Node *root)
int maxlevel = 0;
Node *result = NULL;
deepestLeftLeafUtil(root, 0, &maxlevel, false, &result);
return result;
Node* insert(Node* node, int val)
/* 1. If the tree is empty, return a new,
single node */
if (node == NULL)
/* 2. Otherwise, recur down the tree */
if (val <= node->val)
node->left = insert(node->left, val);
node->right = insert(node->right, val);
/* return the (unchanged) node pointer */
return node;
int minValue(Node* node) {
Node* current = node;
/* loop down to find the leftmost leaf */
while (current->left != NULL) {
current = current->left;
// Driver program to test above function
int main()
int a, b, c, d, e, f, g, h, i, j;
cout"Enter 10 Numbers in Tree:\n";
Node* root = newNode(a);
root->left = newNode(b);
root->right = newNode(c);
root->left->left = newNode(d);
root->right->left = newNode(e);
root->right->right = newNode(f);
root->right->left->right = newNode(g);
root->right->right->right = newNode(h);
root->right->left->right->left = newNode(i);
root->right->right->right->right = newNode(j);
root = insert(root, a);
insert(root, b);
insert(root, c);
insert(root, d);
insert(root, e);
insert(root, f);
insert(root, g);
insert(root, h);
insert(root, i);
insert(root, j);
Node *result = deepestLeftLeaf(root);
if (result){
cout "Product of 2nd lowest level of a binary tree is: " result->val * result->val;
cout "There is no left leaf in the given tree";
printf("\nMinimum value in BST is %d", minValue(root));
return 0;

Download CS301 Solution file:

CS301 Solution 2 Fall 2016- By_irfan.cpp, 3 KB9


Post a Comment