计算机科学与技术学院实验课程归档材料规范实验报告一实验课名称:数据结构与程序设计实验实验名称:本科生导师制问题实验类型:设计型实验班级:学号:姓名:时间:问题描述在高校得教学改革中,有很多学校实行了本科生导师制。一个班级得学生被分给几个老师,每个老师带n个学生,如果该老师还带研究生,那么研究生也可直接带本科生。本科生导师制问题中得数据元素具有如下形式:导师带研究生ﻫ(老师,((研究生1,(本科生1,…,本科生m1)),(研究生2,(本科生1,…,本科生m2))…))导师不带研究生ﻫ(老师,(本科生1,…,本科生m))导师得自然情况只包括姓名、职称;研究生得自然情况只包括姓名、班级;本科生得自然情况只包括姓名、班级。数据结构设计本实验使用得数据结构就是广义表,广义表采用头尾链表存储结构来实现。定义教师、学生结点结构体如下:typedef struct GLNode{ charname[100];/*教师或学生得姓名*/ charprof[100];/*教师结点表示职称,学生结点表示班级*/ﻩinttype; /*结点类型:0-教师,1-研究生,2-本科生*/struct {structGLNode*hp,*tp;} ptr; /*hp指向同级得下一结点,tp指向下级得首结点*/}GList;人员信息得表示形式为:高老师-教授—0、李刚—二班—1、李明-二班-2、人员信息中得姓名、职称、班级、人员类型用“-”隔开,如高老师—教授—0,“高老师"表示姓名,“教师"表示职称,“0”表示人员得类型就是教师;李刚—二班-1,“李刚”表示姓名,“二班"表示班级,“1”表示人员得类型就是研究生;李明—二班-2,“李明”表示姓名,“二班”表示班级,“2”表示人员得类型就是本科生。广义表((高老师-教授-0,(李明—一班-2,王平-二班-2)),(李老师—副教授—0,(白梅-二班-1,(李刚-一班-2)))、算法设计建立:建立导师广义表。GList InitGList(){ GListL= NULL,*l;GListe;e=InitGLNode("teacherli",”fujiaoshou”,0);InsertFirst_GL(&L,e); e=InitGLNode(”teachergao”,”jiaoshou”, 0);InsertFirst_GL(&L, e); l =&((L->ptr)、tp); e=InitGLNode("wangping”,”erban”,2); InsertFirst_GL(l,e); e=InitGLNode("liming", ”yiban", 2); InsertFirst_GL(l, e);l= &((((L—>ptr)、hp)->ptr)、tp); e=InitGLNode(”baimei","erban",1);InsertFirst_GL(l, e);l = &(((*l)—>ptr)、tp); e=InitGLNode("ligang”,”yiban",2); InsertFirst_GL(l,e); returnL;} 插入:(GList*L,GLNode *e){ (e-〉ptr)、hp =*L;
数据结构 本科生导师制问题 来自淘豆网www.taodocs.com转载请标明出处.