资源简介
数据结构作业
编程语言:使用C语言
数据结构:树
简介:实现 家族谱。拥有增、删、改、查的功能。 亲测可用
代码片段和文件信息
#include
#include
#include
int num = 0;
struct node
{
int Num;
char Name[20];
char Sex;
struct node *next[10];
struct node *parent;
};
void Menu(struct node *Tree);
void Create(struct node *node);
void PrintAll(struct node *Tree);
struct node *Search(struct node *Tree char name[]);
void Print(struct node *Tree char name[]);
void Add(struct node *Tree);
void Correct(struct node *Tree);
void Delete(struct node *Tree);
void main()
{
struct node *Tree;
Tree = (struct node*) malloc (sizeof(struct node));
strcpy(Tree->Name “0“);
Tree->parent = NULL;
Tree->next[0] = NULL;
Menu(Tree);
}
void Menu(struct node *Tree)
{
int ch;
char name[20];
while (1)
{
fflush(stdin);
printf(“请选择你的操作\n“);
printf(“1:输入家谱信息建立树\n“);
printf(“2:在家族中查找某人并输出其相应信息\n“);
printf(“3:添加新的成员\n“);
printf(“4:输出整个家谱信息\n“);
printf(“5:修改某个人的信息\n“);
printf(“6:删除某个人的信息\n“);
printf(“7:退出整个程序\n“);
printf(“你的选择是:“);
scanf(“%d“&ch);
printf(“\n“);
fflush(stdin);
if(ch == 7) break;
switch(ch)
{
case 1:
printf(“请输入姓名:“);
scanf(“%s“ Tree->Name);
fflush(stdin);
printf(“请输入性别:(女G 男B)“);
scanf(“%c“ &Tree->Sex);
fflush(stdin);
Create(Tree);
printf(“\n\n“);
break;
case 2:
if(strcmp(Tree->Name “0“) == 0)
{
printf(“家族谱未建立\n\n“);
break;
}
printf(“请输入要查找的人物姓名:“);
scanf(“%s“name);
fflush(stdin);
Print(Search(Tree name) name);
printf(“\n\n“);
break;
case 3:
if(strcmp(Tree->Name “0“) == 0)
{
printf(“家族谱未建立\n\n“);
break;
}
Add(Tree);
printf(“\n\n“);
break;
case 4:
if(strcmp(Tree->Name “0“) == 0)
{
printf(“家族谱未建立\n\n“);
break;
}
printf(“整个家族的信息如下:\n“);
PrintAll(Tree);
printf(“\n\n“);
break;
case 5:
if(strcmp(Tree->Name “0“) == 0)
{
printf(“家族谱未建立\n\n“);
break;
}
Correct(Tree);
printf(“\n\n“);
break;
case 6:
if(strcmp(Tree->Name “0“) == 0)
{
printf(“家族谱未建立\n\n“);
break;
}
Delete(Tree);
printf(“\n\n“);
break;
}
}
}
void Create(struct node *node)
{
struct node *NewNode;
NewNode = (struct node*) malloc (sizeof(struct node)); //申请配偶节点内存空间
node->next[0] = NewNode; //节点连接
NewNode->parent = node;
printf(“请输入%s的配偶姓名:(若无配偶,则输入0) “ node->Name);
scanf(“%s“ NewNode->Name);
fflush(stdin);
if(strcmp(NewNode->Name “0“) == 0)
{
node->Num = 0; //无配偶默认无子女
return;
}
if(node->Sex == ‘G‘) NewNode->Sex = ‘B‘; //设置配偶参数
else NewNode->Sex = ‘G‘;
NewNode->Num = node->Num; //配偶子女数
NewNode->next[0] = NULL;
printf(“请输入%s的子女数:“ node->Name);
scanf(“%d“&node->Num);
for(int i = 1; i <= node->Num; i ++)
{
NewNode = (struct node*) malloc (sizeof(struct node)); //申请子女节点内存空间
printf(“请输入%s的第%d个子女的姓名:“ node->Name i)
- 上一篇:曲线最小二乘法多项式拟合C++Qt实现界面
- 下一篇:操作系统 银行家算法 C++
相关资源
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
- 算符优先语法分析器(C语言编写)
评论
共有 条评论