ツリーの奇数レベルのみを印刷するC++プログラム
これは、ツリーの奇数レベルのみを出力するC++プログラムです。
アルゴリズム
擬似コードを使用した構造と関数:
Begin Declare nod as a structure. Declare d of integer datatype. Declare a pointer l against struct nod. Declare a pointer l against struct nod. Call function struct nod* newNod(int d). Declare struct nod* newNod(int d) function. Declare a pointer node against struct node. Initialize node = (struct nod*) malloc(sizeof(struct nod)). node->d = d node->l = NULL node->r = NULL return node. Call function printLevel(struct nod* root, int lvl). Declare function printLevel(struct nod* root, int lvl). if (root == NULL) then return if (lvl == 1) then print the values of root->d else if (lvl > 1) call printLevel(root->l, lvl - 1) printLevel(root->r, lvl - 1) Call function height(struct nod* node). Declare function height(struct nod* node) to compute the height of tree. if (node == NULL) then return 0 else int lhght = height(node->l); int rhght = height(node->r); if (lhght > rhght) then return (lhght + 1) else return (rhght + 1) Declare function printLevelOrder(struct nod* root). declare h of the integer datatype. initialize h = height(root). declare i of the integer datatype. for (i = 1; i <= h; i+=2) call function printLevel(root, i). insert values in the tree. Print “Odd numbered Level Order traversal of binary tree is”. Call function printLevelOrder(root). Endを呼び出します
例
#include <iostream> #include<stdlib.h> using namespace std; struct nod { int d; struct nod* l; struct nod* r; }; struct nod* newNod(int d); struct nod* newNod(int d) { struct nod* node = (struct nod*) malloc(sizeof(struct nod)); node->d = d; node->l = NULL; node->r = NULL; return (node); } void printLevel(struct nod* root, int lvl); void printLevel(struct nod* root, int lvl) { if (root == NULL) return; if (lvl == 1) printf("%d ", root->d); else if (lvl > 1) { printLevel(root->l, lvl - 1); printLevel(root->r, lvl - 1); } } int height(struct nod* node); int height(struct nod* node) { if (node == NULL) return 0; else { int lhght = height(node->l); int rhght = height(node->r); if (lhght > rhght) return (lhght + 1); else return (rhght + 1); } } void printLevelOrder(struct nod* root) { int h = height(root); int i; for (i = 1; i <= h; i+=2) printLevel(root, i); } int main() { struct nod *root = newNod(7); root->l = newNod(6); root->r = newNod(4); root->l->l = newNod(3); root->l->r = newNod(5); root->r->l = newNod(2); root->r->r = newNod(1); cout<<"Odd numbered Level Order traversal of binary tree is \n"; printLevelOrder(root); return 0; }
出力
Odd numbered Level Order traversal of binary tree is 7 3 5 2 1
-
C++プログラミングのバイナリツリー内のすべてのノードの印刷レベル。
二分木が与えられた場合、タスクは、1からnまでのノードに格納されているすべてのキーに関連付けられたレベルを出力することです 上記のツリーでは、ノードは- 10 at level 1 3 and 211 at level 2 140, 162, 100 and 146 at level 3 キーが与えられると、プログラムはその特定のキーのレベルを出力する必要があります。 例 Input: 10 3 211 140 162 100 146 Output: level of 10 is 1 Level of 3 is 2 &
-
AVLツリーを実装するためのC++プログラム
AVLツリーは自己平衡二分探索木であり、左右のサブツリーの高さの差がすべてのノードで複数になることはありません。 ツリーの回転は、AVLツリーの要素の順序を妨げることなく構造を変更する操作です。ツリー内で1つのノードを上に移動し、1つのノードを下に移動します。これは、ツリーの形状を変更したり、小さいサブツリーを下に移動したり、大きいサブツリーを上に移動したりして高さを低くしたりするために使用され、多くのツリー操作のパフォーマンスが向上します。回転の方向は、木のノードが移動する側に依存しますが、他の人は、どの子がルートの場所をとるかに依存すると言います。これは、AVLツリーを実装するためのC+