家谱管理系统

——

C

语言(数据结构)

目的和要求:树形结构是一种非常重要的非线性结构,它用于描述数据元素之间

的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结

构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历,和二叉树

相关的一些运算;要求完成家谱信息的录入和保存,任意成员的查找及某一成员

祖先、子孙、兄弟、堂兄弟的查找。

排答疑和辅导。

完整代码:

#include 

#include 

#include 

int MATEFLAG=0;  //

是否入赘或嫁入这家的,

1

表示为是,

0

表示否

typedef struct TreeNode//

树节点定义

{

int  Num;          //

保存此人儿女个数

char Name[20];     //

保存此人姓名

char Kind;         //

保存此人性别,男

M

,女

F

struct TreeNode * NextNode[20];  //

保存此人的儿女

,NextNode[0]

里存放配偶的地址

struct TreeNode * Parent;        //

保存此节点的父节点

}TreeNode;

void CreatTree(TreeNode *Tree);//

创建树

void OutPutAll(TreeNode *Tree);//

输出树

TreeNode *  SearchTree(TreeNode *Tree,char name[],int length);

void MainMenu(TreeNode *Tree);

void SubMenue1(TreeNode * Tree);

void SubMenue2(TreeNode *Tree);

void Change(TreeNode * Tree);

void AddNew(TreeNode * Tree);

void OutPutMessage(TreeNode * Tree,char name[],int length);

//

主函数

void main()

{

TreeNode *Tree;//

产生根节点

Tree=(TreeNode *)malloc(sizeof(TreeNode));

Tree->Parent =NULL;

strcpy(Tree->Name,"0");

MainMenu(Tree);//

显示主菜单

}

//

添加新的成员

void AddNew(TreeNode * Tree)

{

SubMenue2(Tree);//

添加新成员界面

}

//

显示添加家庭信息的界面

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐