高校社团管理

864阅读 0评论2011-06-27 高傲的活着
分类:C/C++

【问题描述】

   在高校中,为了丰富学生的业余生活,在学校的帮助下,会成立许多社团,少则几个,多则几十个。为了有效的管理这些社团,要求编写程序实现以下功能:

  1. 社团招收新成员
  2. 修改社团相应信息
  3. 老成员离开社团
  4. 查询社团情况
  5. 统计社团成员数

【问题分析】

    社团管理部门、社团和社团成员之间构成了完整的一棵树,如图一。因此,可以把它作为树的问题来解决。由于树结构比较复杂,不利于求解,先把树转换成二叉树。因此,高校社团管理就转换为对二叉树操作的问题

    在这棵二叉树中,结点类型是不同的,有社团结点,有成员结点。为了便于操作,特设置一个标识域type用于区分结点类型。

   二叉树选用二叉链表作为存储结构。 

                          (a) 树

      (b)二叉树

         图1 社团和成员构成的树

【问题实现】

1.数据结构

(a)定义结点[封装数据信息]

typedef struct Info{

    int type;              /*类型,0为社团,1为社团成员 */

    char tname[20];        /*名称或姓名*/

    char data[11];          /*成立日期或出生日期*/

     char phone[11];        /*联系电话*/

     char duty[10];          /* 职务*/

}datatype;

(b)描述二叉树的二叉链表存储结构

typedef struct bitnode

{  

   datatype data;                    /*数据域*/

   struct bitnode *lchild,*rchild;    /*左右孩子指针*/ 

}BiTNode,*PBiTNode,*BiTree;

2.操作实现

(1)根据类型和名称查找结点

 

 

 

 

 

 

 

 

 

 

 

 

参考资料

1.《数据结构实例教程》  杨晓光

上一篇:android设置环境变量
下一篇:FLEX4.0流媒体视频播放器开发的方法