资源简介
课程实践相关的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语言写的音乐播放器(含源码注释)
- 嵌入式web服务器boa_C语言/Python + HTML
- 《数据结构题集C语言版》严蔚敏,吴
- 24 个C语言项目案例分析源码+使用说明
- 蒙特卡洛积分方法 C语言
- 安徽大学操作系统实验四主存空间的
- C语言程序设计课程教学课件
- 谭浩强C语言第四版全套课件
- Simplorer中C语言嵌入
- 数据结构大作业 快递系统 C语言
- 功能完善的俄罗斯方块程序(C语言编
- 数据结构C语言版第2版源代码
- C语言C++常见面试题含答案 (1).pdf
- 队列应用银行排队问题模拟:计算客户
- C语言核心技术英文版
- C语言实现基于winsock的ftp客户端程序
- 自制编程语言基于C语言郑钢源代码
- 数据结构C语言版第2版课后习题答案
- 华为技术有限公司C语言编程规范110
- C语言编程经典200
- 数据结构课程设计 职工管理系统 c语
- 常用算法程序集(C语言描述) (PD
- 轻松玩转AVR单片机C语言
- Apache2.2-win32-x86
- C语言基于SDL的贪吃蛇项目
- Fast ANN神经网络算法源码
- 郝斌C语言详细笔记 附源码91146
- MFC+Access图书馆管理系统
- 谭浩强《C语言程序设计》考研考点讲
- 小甲鱼C语言课件
评论
共有 条评论