C言語でバイナリツリーの左図を印刷
タスクは、指定されたバイナリ ツリーの左ノードを出力することです。まず、ユーザーはデータを挿入してバイナリ ツリーを生成し、結果のツリーの左側のビューを印刷します。
各ノードは最大 2 つの子ノードを持つことができるため、このプログラムはノードに関連付けられた左ポインタのみを反復する必要があります。
左ポインタが null でない場合は、いくつかの子ノードがあることを意味します。関連付けられたデータまたはポインター。それ以外の場合は、左側の子が出力として印刷および表示されます。
例Input : 1 0 3 2 4
Output : 1 0 2
ログイン後にコピー
Input : 1 0 3 2 4 Output : 1 0 2
ここで、オレンジ色のノードはバイナリ ツリーの左側のビューを表します。
指定されたグラフでは、データ 1 を持つノードがルート ノードであるため、左の子ノードに進む代わりに 0 が出力され、次に 3 に移動してそのノードが出力されます。左側の子ノードは 2 です。
再帰的メソッドを使用してノードのレベルを保存し、繰り返し転送することができます。
以下のコードは、指定されたアルゴリズム
Algorithm
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 left_view(struct node* root, int level, int* highest_level) IF root = NULL Exit End IF *highest_level < level Print root->data Set *highest_level = level End Recursively call left_view(root->left, level + 1, highest_level) Recursively call left_view(root->right, level + 1, highest_level) Step 4 -> Declare Function void left(struct node* root) Set int highest_level = 0 Call left_view(root, 1, &highest_level) Step 5-> In main() Call New passing value user want to insert as struct node* root = New(1) Call left(root) STOP
#include <stdio.h>
#include <stdlib.h>
//create a structure of a node
struct node {
int data;
struct node *left, *right; //this pointer will point to the nodes attached with a node
};
struct node* New(int new_data) {
struct node* temp = (struct node*)malloc(sizeof(struct node));
//allocating memory to a pointer dynamically
temp->data = new_data;
temp->left = temp->right = NULL;
return temp;
}
void left_view(struct node* root, int level, int* highest_level) {
if (root == NULL) //if there is no node that means no data
return;
// this function will retrun the root node if there is only root node in a tree
if (*highest_level < level) {
printf("%d\t", root->data);
*highest_level = level;
}
// Recursive function
left_view(root->left, level + 1, highest_level);
left_view(root->right, level + 1, highest_level);
}
void left(struct node* root) {
int highest_level = 0;
left_view(root, 1, &highest_level);
}
int main() {
printf("left view of a binary tree is : ");
struct node* root = New(1);
root->left = New(0);
root->right = New(3);
root->right->left = New(2);
root->right->right = New(4);
left(root);
return 0;
}
ログイン後にコピー
出力 上記のプログラムを実行すると、次の出力が生成されます。 #include <stdio.h> #include <stdlib.h> //create a structure of a node struct node { int data; struct node *left, *right; //this pointer will point to the nodes attached with a node }; struct node* New(int new_data) { struct node* temp = (struct node*)malloc(sizeof(struct node)); //allocating memory to a pointer dynamically temp->data = new_data; temp->left = temp->right = NULL; return temp; } void left_view(struct node* root, int level, int* highest_level) { if (root == NULL) //if there is no node that means no data return; // this function will retrun the root node if there is only root node in a tree if (*highest_level < level) { printf("%d\t", root->data); *highest_level = level; } // Recursive function left_view(root->left, level + 1, highest_level); left_view(root->right, level + 1, highest_level); } void left(struct node* root) { int highest_level = 0; left_view(root, 1, &highest_level); } int main() { printf("left view of a binary tree is : "); struct node* root = New(1); root->left = New(0); root->right = New(3); root->right->left = New(2); root->right->right = New(4); left(root); return 0; }
えええええ
以上がC言語でバイナリツリーの左図を印刷の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











印刷が必要なファイルを開いたときに、印刷プレビューで表の枠線が何らかの原因で消えてしまった場合は、早めに対処する必要があります。 file このような質問がある場合は、エディターに参加して次のコースを学習してください: Excel で表を印刷するときに枠線が消えた場合はどうすればよいですか? 1. 次の図に示すように、印刷する必要があるファイルを開きます。 2. 以下の図に示すように、必要なコンテンツ領域をすべて選択します。 3. 以下の図に示すように、マウスを右クリックして「セルの書式設定」オプションを選択します。 4. 以下の図に示すように、ウィンドウの上部にある「境界線」オプションをクリックします。 5. 下図に示すように、左側の線種で細い実線パターンを選択します。 6.「外枠」を選択します

この記事では、Microsoft Word で文書を再ページしたり印刷したりするときにメモリまたはディスク容量が不足する問題を解決する方法を紹介します。このエラーは通常、ユーザーが Word 文書を印刷しようとしたときに発生します。同様のエラーが発生した場合は、この記事に記載されている解決策を参照してください。この文書を再ページまたは印刷するにはメモリまたはディスク容量が不足しています。 Word エラー Microsoft Word の印刷エラー「文書を再ページまたは印刷するには、メモリまたはディスク容量が不足しています。」を解決する方法。 Microsoft Office を更新する メモリを大量に消費するアプリケーションを閉じる 通常使うプリンタを変更する Word をセーフ モードで起動する NorMal.dotm ファイルの名前を変更する Word ファイルを別のファイルとして保存する

このデジタル世界においても、印刷されたページの必要性は消えていません。コンテンツをコンピュータに保存してプリンタに直接送信するほうが便利だと思うかもしれませんが、iPhone でも同じことができます。 iPhone のカメラを使用すると、写真やドキュメントを撮ることができ、いつでも印刷できるようにファイルを直接保存することもできます。このようにして、必要な情報を迅速かつ簡単に具体化し、紙の文書に保存できます。仕事中でも日常生活でも、iPhone はポータブルな印刷ソリューションを提供します。次の投稿は、iPhone を使用してページをプリンタで印刷する場合に知っておくべきことをすべて理解するのに役立ちます。 iPhone から印刷する: Apple に問い合わせる

Windows 11/10 で Snipping Tool を使用して印刷できない場合は、システム ファイルの破損またはドライバーの問題が原因である可能性があります。この記事では、この問題の解決策を紹介します。 Windows 11/10 で Snipping Tool から印刷できない Windows 11/10 で Snipping Tool から印刷できない場合は、次の修正を使用します。 PC プリンタを再起動する 印刷キューをクリアする プリンタとグラフィックス ドライバを更新する Snipping Tool を修正またはリセットする SFC を実行し、 DISM スキャンは PowerShell コマンドを使用して Snipping Tool をアンインストールおよび再インストールします。始めましょう。 1] PC とプリンターを再起動します。 PC とプリンターを再起動すると、一時的な不具合を解消できます。

Outlook は最も機能が豊富な電子メール クライアントの 1 つであり、プロフェッショナルなコミュニケーションに不可欠なツールとなっています。課題の 1 つは、Outlook ですべての添付ファイルを同時に印刷することです。通常、印刷する前に添付ファイルを 1 つずつダウンロードする必要がありますが、すべてを一度に印刷したい場合、これはほとんどの人が遭遇する問題です。 Outlook ですべての添付ファイルを印刷する方法 ほとんどの情報は Outlook アプリケーションでオンラインで保持されますが、バックアップのために情報を印刷する必要がある場合があります。契約書、政府の書類、宿題などの法的要件を満たすために、文書に直接署名する必要があります。 Outlook の添付ファイルを 1 つずつ印刷するのではなく、ワンクリックですべての添付ファイルを印刷できる方法がいくつかあります。それぞれを詳しく見てみましょう。アウトルー

Word を使用して差し込み印刷文書を印刷するときに空白のページが表示される場合は、この記事が役に立ちます。差し込み印刷は、個人用の文書を簡単に作成し、複数の受信者に送信できる便利な機能です。 Microsoft Word の差し込み印刷機能は、ユーザーが受信者ごとに同じコンテンツを手動でコピーする時間を節約できるため、高く評価されています。差し込み文書を印刷するには、[差し込み文書] タブに移動します。しかし、一部の Word ユーザーは、差し込み文書を印刷しようとすると、プリンターで空白のページが印刷されたり、まったく印刷されなかったりすると報告しています。これは、間違ったフォーマットまたはプリンター設定が原因である可能性があります。文書とプリンターの設定を確認し、印刷前に必ず文書をプレビューして内容が正しいことを確認してください。もし

Vue で印刷機能を実装するには、特定のコード サンプルが必要です。 Vue.js は、ユーザー インターフェイスを構築するための進歩的な JavaScript フレームワークです。多くの Web アプリケーションでは、印刷機能は非常に重要な部分です。この記事では、Vue で印刷機能を実装する方法と具体的なコード例を紹介します。 Vue で印刷機能を実装するには、まず印刷されるコンテンツが何であるかを明確にする必要があります。通常、印刷するコンテンツは div などの HTML 要素に入れます。次に、Jav経由で

間違って大きなファイルを印刷してしまったのでしょうか?インクと用紙を節約するために印刷を停止または一時停止する必要がありますか? Windows 11 デバイスで進行中の印刷ジョブを一時停止する必要がある状況は数多くあります。 Windows 11 で印刷を一時停止するにはどうすればよいですか? Windows 11 では、印刷を一時停止すると印刷ジョブは一時停止されますが、印刷タスクはキャンセルされません。これにより、ユーザーはより柔軟な制御が可能になります。これを行うには、次の 3 つの方法があります。 タスクバーを使用して印刷を一時停止する Windows の設定を使用して印刷を一時停止する コントロール パネルを使用して印刷する それでは、これらを詳しく見てみましょう。 1] タスクバーを使用して印刷する タスクバーの印刷キュー通知を右クリックします。クリックすると、アクティブなプリンター オプションがすべて開きます。ここで、印刷ジョブを右クリックし、「すべて一時停止」を選択します。
