資源簡介
利用二叉排序樹實現學生成績處理
(1)每個學生信息包括:學號,姓名,成績三個字段
(2)創建:按成績構建二叉排序樹,存儲學生數據;
(3)查找:在建立好的二叉排序樹中,根據學號或姓名查找學生成績;
(4)排序:對學生信息按照成績進行排序;
代碼片段和文件信息
#include?
#include?
#include?
#?define?max?100
#?define??null?0
??
struct?student?????//定義學生實體結構體
{
????int?id;
char?name[15];
float?score;
????struct?student?*lchild*rchild;
};
struct?student?*inserttree(struct?student?*tree);//錄入信息的函數
struct?student?*find_id(struct?student?*tree?int?x);//按學號查找
struct?student?*find_name(struct?student?*treechar?*name);//按姓名查找
void?midorder(struct?student?*tree);//中序輸出信息
int?main()???//主函數
{
????int?choose;
????struct?student?*tree?*findi;
????int?flag?id;
char?name[15];
????flag=1;
????tree=null;
????do
????{
????????????printf(“\n\n************************************************\n\n\n“);
????????????printf(“----------------歡迎使用本系統\n\n1----------創建排序二叉樹并錄入學生信息\n\n“);
printf(“2----------按學號查找\n\n3----------按姓名查找\n\n“);
????????????printf(“4----------按成績排序輸出\n\n“);
????????????printf(“\n\n************************************************\n“);
????????????scanf(“%d“&choose);
????????????switch(choose)
????????????{
????????????????????case?1:
tree=inserttree(tree);
????????????????????????break;
????????????????????case?2:
printf(“請輸入要查找的學生的學號:“);
????????????????????????scanf(“%d“&id);
????????????????????????findi=find_id(treeid);
????????????????????????if(findi==null)
printf(“沒有找到符合要求的學生\n\n“);
????????????????????????else
printf(“該學生信息為學號%d\t姓名%s\t分數%.1f\n\n“findi->idfindi->namefindi->score);
????????????????????????break;
????????????????????case?3:
printf(“請輸入要查找的學生的姓名:“);
????????????????????????scanf(“%s“&name);
????????????????????????findi=find_name(treename);
????????????????????????if(findi==null)
printf(“沒有找到符合要求的學生\n\n“);
????????????????????????else
printf(“該學生信息為學號%d\t姓名%s\t分數%.1f\n\n“findi->idfindi->namefindi->score);
????????????????????????break;
????????????????????case?4:
if(tree!=NULL)
{
printf(“學生信息為:\n\n\n“);
????????????????????????????midorder(tree);
}
else
printf(“暫時沒有學生信息!\n\n\n“);
????????????????????????break;
????????????????????
????????????????????default:?printf(“error\n“);
????????????}
?????????printf(“繼續操作請
評論
共有 條評論