数据结构课程设计家族关系查询系统

上传人:tang****xu3 文档编号:162597929 上传时间:2021-01-20 格式:DOCX 页数:8 大小:34.82KB
返回 下载 相关 举报
数据结构课程设计家族关系查询系统_第1页
第1页 / 共8页
数据结构课程设计家族关系查询系统_第2页
第2页 / 共8页
数据结构课程设计家族关系查询系统_第3页
第3页 / 共8页
数据结构课程设计家族关系查询系统_第4页
第4页 / 共8页
数据结构课程设计家族关系查询系统_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据结构课程设计家族关系查询系统》由会员分享,可在线阅读,更多相关《数据结构课程设计家族关系查询系统(8页珍藏版)》请在金锄头文库上搜索。

1、数据结构课程设计家族关系查询系统2020年4月19日1课程设计介绍1.1课程设计项目简介家谱是一种以表谱形式,记载一个以血缘关系为主 体的家族世系繁衍和重要人物事迹的特殊图书载体。 家谱是中国特有的文化遗产,是中华民族的三大文献 之一,属珍贵的人文资料,对于历史学,民俗学,人 口学,社会学和经济学的深入研究,均有不可替代的 重要功能。本项目对家谱管理进行简单的模拟,以实 现查看祖先和子孙个人信息、插入家族成员等功1.2课设题目分析本程序的实质是完成对家谱成员信息的建立、查 找、插入等功能。能够首先定义家族成员的数据结 构,然后将每个功能写成一个函数来完成对数据的操 作,最后完成主函数以验证各个

2、函数功能并得出运行 结果。本程序包含以下几个模块(1) 建立家族关系树。此模块将构建一个家族关系, 对数据初始化,构造关系树并录入数据一遍后续程序 使用。(2) 添加新成员。此模块将添加一个新成员,实现对 家族关系的修改。(3) 家族关系的查询。此模块将实现对家族不同关系 的查询(4) 主程序模块。此模块实现整个程序的进入和进 出,以及各种初始化处理。(5)1.3课程题目原理与数据结构因为家族的成员之间存在一个对多个的层次结构 关系,因此不能用线性表来表示和实现。家谱从形状 上看像一颗倒长的树,因此用树结构来表示比较合 适。树形结构是一类非常重要的非线性数据结构,直 观看来树是以分支关系定义的

3、层次结构。因此本课程设计能够采用的数据结构有树状结构和 队列。树状结构采用三叉链表来实现,队列采用链式队列实现。1.4功能分析说明图家族关系查询系统2分析与实现2.1基本数据结构和栈队的操作2.1.1结点基本数据结构和链队的定义/*家族关系树实现*/#include #include #include#include#include#include#include#include #define TRUE 1#define FALSE 0#define OK 1#define ERROR -1#define INFEASIBLE -1typedef char DataType;#define

4、MAXNUM 20typedef struct TriTNode/*树的三叉链表存储结构 */DataType dataMAXNUM;struct TriTNode *parent; /* 双亲 */struct TriTNode *lchild; /* 左孩子 */struct TriTNode *rchild; /* 右孩子 */TriTree;typedef struct Node/*队列的结点结构*/TriTree *info;struct Node *next;Node;typedef struct/*链接队列类型定义*/struct Node *front;/* 头指针 */str

5、uct Node *rear;/* 尾指针 */LinkQueue;DataType fnameMAXNUM,family50MAXNUM; /* 全局变量*/2.1.2链队的基本操作LinkQueue *LQueueCreateEmpty( )/* 建立一个空队列*/LinkQueue *plqu=(LinkQueue*)malloc( sizeof(LinkQueue);if (plqu!=NULL)plqu-front=plqu-rear=NULL;elseprintf(内存不足! n);return NULL;return plqu;int LQueueIsEmpty(LinkQueue *plqu)/* 判断链接表示队列是否为空队列*/(return (plqu-front=NULL);void LQueueEnQueue(LinkQueue *plqu,TriTree *x) /* 进队列*/(Node *p=(Node *)malloc( sizeof(Node);if(p=NULL)printf(内存分配失败! n);else(p-info=x;p-next=NULL;if(plqu-front=NULL)/* 原来为空队 */plqu-front=p;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号