资源简介
课程实践相关的C语言做的家族关系查询系统

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXNUM 20
char family[100][20]; /* 全局变量*/
struct TriTree /* 树的三叉链表存储结构*/
{
char data[MAXNUM];
struct Node *parent;
struct Node *lchild;
struct Node *rchild;
};
struct Node /* 队列的结点*/
{
struct TriTree *info;
struct Node *next;
};
struct linkQueue /* 链接队列类型*/
{
struct Node *front;
struct Node *rear;
};
//链队的基本操作
//建立一个空队列
struct linkQueue *LQueueCreateEmpty( )
{
struct linkQueue *plqu;
plqu=(struct linkQueue *)malloc(sizeof(struct linkQueue));
if (plqu!=NULL)
plqu->front=plqu->rear=NULL;
else
return NULL;
return plqu;
}
//进队列
void LQueueEnQueue(struct linkQueue *plqustruct TriTree *x)
{
struct Node *p;
p=(struct Node *)malloc(sizeof(struct Node));
p->info=x;
p->next=NULL;
if(plqu->front==NULL)/* 原来为空队*/
plqu->front=p;
else
plqu->rear->next=p;
plqu->rear=p;
}
//出队列
void LQueueDeQueue(struct linkQueue *plqustruct TriTree *x)
{
struct Node *p;
if(plqu->front==NULL)
return;
else
{
p=plqu->front;
x=p->info;
plqu->front=plqu->front->next;
free(p);
return;
}
}
//求队头元素
struct TriTree *LQueueGetFront(struct linkQueue *plqu)
{
return(plqu->front->info);
}
/* 建立家族关系树*/
struct TriTree *TriTreeCreate()
{
int i=0flag=0start=0;
char str[MAXNUM];
struct TriTree *t*x=NULL*tree*root=NULL;
struct linkQueue *q; /* 建立一个空队列*/
q=LQueueCreateEmpty();
strcpy(strfamily[i]);
i++; /* family数组下标*/
while(str[0]!=‘#‘)
{
while(str[0]!=‘@‘)
{
if(root==NULL) /* 空树*/
{
root=(struct TriTree *)malloc(sizeof(struct TriTree));
strcpy(root->datastr);
root->parent=NULL;
root->lchild=NULL;
root->rchild=NULL;
LQueueEnQueue(qroot); /* 将root入队*/
tree=root;
}
else /* 不为空树*/
{
t=(struct TriTree *)malloc(sizeof(struct TriTree));
strcpy(t->datastr);
t->lchild=NULL;
t->rchild=NULL;
t->parent=LQueueGetFront(q); /* 当前结点的双亲为队头元素*/
LQueueEnQueue(qt); /* 入队*/
if(flag==0) /* flag为0,当前结点没有左孩子*/
root->lchild=t;
else /* flag为1,当前结点已有左孩子*/
root->rchild=t;
root=t;
}
flag=1; /* 标记当前结点已有左孩子*/
strcpy(strfamily[i]);
i++;
}
if(start!=0) /* 标记不是第一次出现“@”*/
{
LQueueDeQueue(qx); /* 出队*/
if(q->front!=NULL)
root=LQueueGetFront(q); /* 队头元素*/
}
start=1; /* 标记已出现过“@”*/
flag=0; /* “@”后面的结点一定为左孩子*/
strcpy(strfamily[i]);
i++;
}
return tree;
}
//建立家族关系并存入文件
struct TriTree *Create()
{
struct TriTree *t;
char* str0=“李一一“; char* str1= “@“; char* str2=“李二一“; char* str3=“李二二“;
char* str4=“李二三“; char* str5=“@“; char* str6=“李三一“; char* str7=“李三二“;
ch
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-22 18:37 课程设计\
文件 16676 2015-07-20 18:42 课程设计\家族关系代码.txt
文件 16678 2015-07-20 18:39 课程设计\家族关系查询.c
文件 278570 2015-07-18 13:57 课程设计\家族关系查询.exe
文件 67584 2015-07-20 18:51 课程设计\家族关系查询系统设计报告.doc
目录 0 2015-09-22 18:37 课程设计\数据结构课程设计\
文件 16300 2015-07-20 22:09 课程设计\数据结构课程设计\家族关系代码.txt
文件 16302 2015-07-20 22:02 课程设计\数据结构课程设计\家族关系查询.c
文件 270387 2015-07-20 22:09 课程设计\数据结构课程设计\家族关系查询.exe
文件 1912895 2015-07-22 20:43 课程设计\数据结构课程设计\家族关系查询系统设计报告.doc
文件 44544 2005-07-07 20:25 课程设计\数据结构课程设计教学任务书.doc
文件 412672 2005-07-13 14:33 课程设计\设计报告范例1.doc
文件 430592 2006-01-01 03:19 课程设计\设计报告范例2.doc
- 上一篇:C语言写的音乐播放器(含源码注释)
- 下一篇:VC++MFC抓包程序源码
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(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语言的课
评论
共有 条评论