cs301 assignment 3 solution fall 2022

VU Answer Gives CS301 Assignment No 3 Solution Fall 2022. Get A Perfect Solved CS301 Assignment 3 Solution 2022 PDF File Download Below.


CS301 ASSIGNMENT 3 SOLUTION FALL 2022 

Provide by VU Answer


Due Date: 21 Feb 2022

Total Marks: 20 


Assignment Uploading Instruction:

Submit only code in .cpp format.



CODE Solution:



#include <iostream>

#include <conio.h>

using namespace std;

class TreeNode

{

private:

int object;

TreeNode *left,*right;

public:

void setInfo(int a)

{

object =a;

}

int getInfo()

{

return object;

}

void setLeft(TreeNode *TN)

{

left = TN;

}

TreeNode* getLeft()

{

return left;

}

void setRight(TreeNode *TN)

{

right = TN;

}

TreeNode* getRight()

{

return right;

}

bool isLeaf(TreeNode *TN)

{

if(TN -> getLeft()==NULL &&TN-> getRight()==NULL)

return true;

else

return false;

}


};


class Heap

{

private:

int currentSize,capacity,*array;

public:

      Heap()

  {

    capacity=15;

    array=new int[capacity];

    currentSize=0;

       }

        void insert(int a, int n)

       {

             if(isFull())

    

             cout<<"\n\n ***Heap is Full***";

    

             else if(n == 1)

    

         {

         array[currentSize]=a;

         percolateDown();

         currentSize++;

    }

    else

    {

    array[currentSize] = a;

    currentSize++;

    }

    }

    

    bool isEmpty()

    

    {

    if(currentSize == 0)

    return true;

    else

return false; 

   

}

bool isFull()

{

if(currentSize == capacity)

  return true;

else

  return false;  

}

void buildHeap()

{

p:

int p,found=0,tmp,min;

for(int i=currentSize; i>=0; i--)

{

p=(i*2)+1;

if(p < currentSize && (array[i]  >  array[p]  || array[i] > array[p+1]))

{

if(array[p] < array[p+1])

        min = p;

    else

    min = p+1;

tmp = array[i];

array[i] = array[min];

array[min] = tmp;

found++;  

}

}

if(found > 0)

  goto p;

}

void traverse()

{

for(int i=0; i<currentSize; i++)

  

  cout<<" "<<array[i];

}

void percolateDown()

{  

    int p, found=0,tmp;

    for(int i=0; i<currentSize;i++)

    

    {

    p = (i*2)+1;

    if(p <= currentSize && array[i] > array[p])

   

    {

    tmp = array[i];

    array[i] = array[p];

    array[p] = tmp;

    found++;

}

if((p+1) <= currentSize && array[i] > array[p+1])

{

tmp = array[i];

array[i] = array[p+1];

array[p+1] = tmp;

found++;

}

}

if(found > 0)

percolateDown();

}    

};

TreeNode *root=NULL;

int b[15],c=0;

void addNode(int a)

{

int found=0;

TreeNode *newNode = new TreeNode;

newNode -> setInfo(a);

newNode -> setLeft(NULL);

newNode -> setRight(NULL);

if(root == NULL)

{

root = newNode;

cout<<"\n"<<a<<" is inserted as root in BST";

}

else

{

TreeNode *pre = root;

TreeNode *ptr = root;

while(ptr != NULL)

{

if(newNode -> getInfo() < ptr -> getInfo())

{

pre = ptr;

ptr = ptr -> getLeft();

if(ptr == NULL)

pre -> setLeft(newNode);

}

else if(newNode -> getInfo() > ptr->getInfo())

{

pre = ptr;

ptr = ptr -> getRight();

if(ptr == NULL)

pre -> setRight(newNode);

}

else

{

cout<<"\n Duplicate Record Found";

delete newNode;

found++;

break;

}

}

if(found == 0)

{

(a < 10) ? cout<<"\n" <<a: cout<<"\n"<<a;

cout<<" inserted in BST";

}


}

}

void inputDate()

{

int noOfNodes,nodeValue;

cout<<"How many nodes you want to insert into BST: ";

cin>>noOfNodes;

cout<<"Enter "<<noOfNodes<<" values to insert into BST: ";

for(int i=0;i<noOfNodes;i++)

{

cin>>nodeValue;

addNode(nodeValue);

}

}

void preOrder(TreeNode *TN)

{

if(TN != NULL)

{

cout<<" "<<TN->getInfo();

b[c++] = TN -> getInfo();

preOrder(TN -> getLeft());

preOrder(TN -> getRight());

}

}

void postOrder(TreeNode *TN)

{

if(TN != NULL)

{

postOrder(TN -> getLeft());

postOrder(TN -> getRight());

cout<<" "<<TN->getInfo();

b[c++] = TN -> getInfo();

}

}

int populateTree(int a)

{

return b[a];

}

int main()

{

Heap H, H2;

inputDate();

cout<<"\n\n Post-Order Traversal of BST: ";

postOrder(root);

for(int i=0;i<=14;i++)

  H.insert(populateTree(i),1);

  cout<<"\n Min Heap using Insert Method: ";

  H.traverse();

  c=0;

  cout<<"\n\n Pre-Order Traversal of BST: ";

  preOrder(root);

  for(int i=0;i<=14;i++)

  H2.insert(populateTree(i),2);

  H2.buildHeap();

  cout<<"\n Min Heap using Build Method: ";

  H2.traverse();

  getch();

  return 0;

  

}



Click to Get Solution File Below:



Download CS301 Solution 2022 CPP File


Download CS301 Solution 2022 Word File


PLEASE NOTE:

Don't copy-paste the same answer.

Make sure you can make some changes to your solution file before submitting copy-paste solution will be marked zero.

Before submitting an assignment check your assignment requirement file.


CS301 Assignment 2022 Solution 3 


CS301 Assignment 3 Fall 2022 Solution


Idea CS301 Assignment 3 Solution 2022 Download


CS301 Assignment No 3 2022 Solution 



Share and help others.