出典:
書式#include <stdio.hに>
する#include <stdlib.h>に含ま
typedefは構造体TNODE
{
int型のID。
int型のスコア。
構造体TNODE * lchild、* rchild。
} STU。
ボイドins_student(STU ** P、長いID、INTスコア)
{
STU * S。
IF(* P == NULL)
{
S =(STU *)はmalloc(はsizeof(STU))。//插入学生信息
S-> ID = ID。
S->スコア=スコア。
S-> lchild = NULL;
S-> rchild = NULL;
* P = sで、
}
そうであれば(スコア<(* P) - >スコア)
ins_student(&((* P) - > lchild)、ID、スコア)。
他
ins_student(&((* P) - > rchild)、ID、スコア);
}
//バイナリソートツリーを作成
* create_studentのSTU()
{
上記IDを述べINTは、スコア;
STUの*ルート、
ルート= NULL;
のprintf( "分離し、0端と学生番号とスコア(入力してください)!");
のprintf(「を\ n ----- -------------------------- \ N- ");
のprintf("学生番号、結果: ");
scanf関数(" %のLD、%D "&ID、およびスコア);
一方(スコア= 0)!
{
ins_student(&根、ID、スコア);
のprintf("学生番号、グレード: ");
scanfの(" %のLDは、%D」、&ID、およびスコア)。
}
のprintf( "\ nは------------------------------- \ N-");
ルートを返します;
}
オーダーのボイドin_orderには(STU * BT)//再帰的なバイナリツリートラバーサル
{
IF(BT = NULL!)
{
in_order(BT-> lchild);
のprintf( "%のLD、%D \ N-"、BT-> ID、BT - >音楽);
in_order(BT-> rchild);
}
}
メインのボイド()
{
STU *ルート、
ルートcreate_student =();
のprintf( "ソート結果:\ N-");
のprintf( "学生番号、グレード:\ N-");
in_order(ルート);
}
結果: