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

Urgent!! Question - Write A C++ Code Using DSA Conce...

Uploaded by

Unlimited Echo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Urgent!! Question - Write A C++ Code Using DSA Conce...

Uploaded by

Unlimited Echo
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

6/20/22, 11:46 PM Urgent!! Question:Write A C++ Code Using DSA Conce... | Chegg.

com

  Home Study tools


 My courses
 My books My folder Career Life 

Find solutions for your homework Search

home / study / engineering / computer science / computer science questions and answers / urgent!! question:write a c++ code using dsa concepts: 30…

Question: Urgent!!
Question:Write a C++ Code Using DSA
concepts:
30 , 1… Post a question
Answers from our experts for your tough
homework questions

Urgent!! Enter question


Question:Write a C++ Code Using DSA
concepts:
30 , 15 , 40 , 4 , 8 , 13 , 29 , 48 , 11 , 41
For the above mentioned sequence, insert values into AVL tree
and perform Left right rotation.
Continue to post
18 questions remaining
Expert Answer

Anonymous answered this


622 answers
Was this answer helpful? 0 0 My Textbook Solutions

// C++ program to insert a node in AVL tree

#include<bits/stdc++.h>

using namespace std;

// An AVL tree node

class Node

Astronomy Fundament... Fundament...


{
0th Edition
public:
7th Edition 6th Edition
int key;

View all solutions


Node *left;

Node *right;

int height;

};

// A utility function to get maximum

// of two integers

int max(int a, int b);

// A utility function to get the

// height of the tree

int height(Node *N)

if (N == NULL)

return 0;

return N->height;

// A utility function to get maximum

// of two integers

int max(int a, int b)

return (a > b)? a : b;

/* Helper function that allocates a

new node with the given key and

NULL left and right pointers. */

Node* newNode(int key)

Node* node = new Node();

node->key = key;

node->left = NULL;

node->right = NULL;

node->height = 1; // new node is initially

// added at leaf

return(node);

// A utility function to right

// rotate subtree rooted with y

// See the diagram given above.

Node *rightRotate(Node *y)

Node *x = y->left;

Node *T2 = x->right;

// Perform rotation

x->right = y;

y->left = T2;

// Update heights

y->height = max(height(y->left),

height(y->right)) + 1;

x->height = max(height(x->left),

height(x->right)) + 1;

// Return new root

return x;

// A utility function to left

// rotate subtree rooted with x

// See the diagram given above.

Node *leftRotate(Node *x)

Node *y = x->right;

Node *T2 = y->left;

// Perform rotation

y->left = x;

x->right = T2;

// Update heights

x->height = max(height(x->left),

height(x->right)) + 1;

y->height = max(height(y->left),

height(y->right)) + 1;

// Return new root

return y;

// Get Balance factor of node N

int getBalance(Node *N)

if (N == NULL)

return 0;

return height(N->left) - height(N->right);

// Recursive function to insert a key

// in the subtree rooted with node and

// returns the new root of the subtree.

Node* insert(Node* node, int key)

/* 1. Perform the normal BST insertion */

if (node == NULL)
return(newNode(key));

if (key < node->key)

node->left = insert(node->left, key);

else if (key > node->key)

node->right = insert(node->right, key);

else // Equal keys are not allowed in BST

return node;

/* 2. Update height of this ancestor node */

node->height = 1 + max(height(node->left),

height(node->right));

/* 3. Get the balance factor of this ancestor

node to check whether this node became

unbalanced */

int balance = getBalance(node);

// If this node becomes unbalanced, then

// there are 4 cases

// Left Left Case

if (balance > 1 && key < node->left->key)

return rightRotate(node);

// Right Right Case

if (balance < -1 && key > node->right->key)

return leftRotate(node);

// Left Right Case

if (balance > 1 && key > node->left->key)

node->left = leftRotate(node->left);

return rightRotate(node);

// Right Left Case

if (balance < -1 && key < node->right->key)

node->right = rightRotate(node->right);

return leftRotate(node);

/* return the (unchanged) node pointer */

return node;

// A utility function to print preorder

// traversal of the tree.

// The function also prints height

// of every node

void preOrder(Node *root)

if(root != NULL)

cout << root->key << " ";

preOrder(root->left);

preOrder(root->right);

// Driver Code

int main()

Node *root = NULL;

/* Constructing tree given in


the above figure */

root = insert(root, 30);

root = insert(root, 15);

root = insert(root, 40);

root = insert(root, 4);

root = insert(root, 8);

root = insert(root, 13);

root = insert(root, 29);

root = insert(root, 48);

root = insert(root, 11);

root = insert(root, 41);

cout << "Preorder traversal of the constructed AVL tree is \n\n";

preOrder(root);

return 0;

View comments (1)




https://www.chegg.com/homework-help/questions-and-answers/urgent-question-write-c-code-using-dsa-concepts-30-15-40-4-8-13-29-48-11-41-mentioned-sequ-q92206019?trackid=2617197597dc&strackid=fbf54f950955 1/2
6/20/22, 11:46 PM Urgent!! Question:Write A C++ Code Using DSA Conce... | Chegg.com

Questions viewed by other students


  Home Study tools
 My courses
 My books My folder Career Life 

Q: Urgent!!
Q2: (05 Marks)
Write C++ code for the given scenario with
comments,
a) Suppose you are working in an
organization. You are given a
bundle of files
containing 2500 files with serial numbers starting from 1 to 2500.
You have
to search
for a file with the serial number 886. You have to search them by
dividing the piles
into two parts. Good news
is that the files are already...

A: See step-by-step answer

Q: Language C++:
30 , 15 , 40 , 4 , 8 , 13 , 29 , 48 , 11 , 41
For the
above mentioned sequence, insert values into AVL tree and
perform
Left right rotation.

A: See step-by-step answer

Show more 

COMPANY LEGAL & POLICIES CHEGG PRODUCTS AND SERVICES CHEGG NETWORK CUSTOMER SERVICE

About Chegg Advertising Choices Cheap Textbooks Chegg Math Solver EasyBib Customer Service
Chegg For Good Cookie Notice Chegg Coupon Mobile Apps Internships.com Give Us Feedback
College Marketing General Policies Chegg Play Sell Textbooks Thinkful Manage Subscription
Corporate Development Intellectual Property Rights Chegg Study Help Solutions Manual
Investor Relations Terms of Use College Textbooks Study 101
Jobs Global Privacy Policy eTextbooks Textbook Rental
Join Our Affiliate Program DO NOT SELL MY INFO Flashcards Used Textbooks
Media Center Honor Code Learn Digital Access Codes
Site Map Honor Shield Uversity Chegg Life
Chegg Writing

© 2003-2022 Chegg Inc. All rights reserved.

https://www.chegg.com/homework-help/questions-and-answers/urgent-question-write-c-code-using-dsa-concepts-30-15-40-4-8-13-29-48-11-41-mentioned-sequ-q92206019?trackid=2617197597dc&strackid=fbf54f950955 2/2

You might also like