The task involves printing leaf nodes of a binary tree at given level k which is specified by the user.
Leaf nodes are the end nodes whose left and right pointer is NULL whichpointer that partic node that a parent node.
Input : 11 22 33 66 44 88 77 Output : 88 77
在這裡,k代表需要列印的樹的層級。這裡使用的方法是遍歷每個節點,並檢查節點是否有任何指標。即使只有一個指針,表示左側或右側或兩者都有,那個特定的節點也不能是葉節點。
使用層次遍歷技術遞歸遍歷每個節點,從左側開始,然後是根節點,最後是右側。
下面的程式碼展示了給定演算法的C語言實作
START Step 1 -> create node variable of type structure Declare int data Declare pointer of type node using *left, *right Step 2 -> create function for inserting node with parameter as new_data Declare temp variable of node using malloc Set temp->data = new_data Set temp->left = temp->right = NULL return temp Step 3 -> declare Function void leaf(struct node* root, int level) IF root = NULL Exit End IF level = 1 IF root->left == NULL && root->right == NULL Print root->data End End ELSE IF level>1 Call leaf(root->left, level - 1) Call leaf(root->right, level - 1) End Step 4-> In main() Set level = 4 Call New passing value user want to insert as struct node* root = New(1) Call leaf(root,level) STOP
include<stdio.h> #include<stdlib.h> //structre of a node defined struct node { struct node* left; struct node* right; int data; }; //structure to create a new node struct node* New(int data) { struct node* temp = (struct node*)malloc(sizeof(struct node)); temp->data = data; temp->left = NULL; temp->right = NULL; return temp; } //function to found leaf node void leaf(struct node* root, int level) { if (root == NULL) return; if (level == 1) { if (root->left == NULL && root->right == NULL) printf("%d</p><p>",root->data); } else if (level > 1) { leaf(root->left, level - 1); leaf(root->right, level - 1); } } int main() { printf("leaf nodes are: "); struct node* root = New(11); root->left = New(22); root->right = New(33); root->left->left = New(66); root->right->right = New(44); root->left->left->left = New(88); root->left->left->right = New(77); int level = 4; leaf(root, level); return 0; }
如果我們執行上述程序,它將產生以下輸出。
leaf nodes are: 88 77
以上是在C語言中,列印給定層級的葉節點的詳細內容。更多資訊請關注PHP中文網其他相關文章!