计算机科学与技术学院实验课程归档材料法律规范实验报告一实验课名称:数据结构与程序设计实验实验名称:本科生导师制问题实验类型:设计型实验班级:学号:姓名:时间:一、问题描述在高校得教学改革中,有很多学校实行了本科生导师制。一个班级得学生被分给几个老师,每个老师带 n 个学生,假如该老师还带讨论生,那么讨论生也可直接带本科生。本科生导师制问题中得数据元素具有如下形式:导师带讨论生ﻫ(老师,((讨论生 1,(本科生1,…,本科生 m1)),(讨论生 2,(本科生1,…,本科生 m 2))…))导师不带讨论生ﻫ(老师,(本科生 1,…,本科生m))导师得自然情况只包括姓名、职称;讨论生得自然情况只包括姓名、班级;本科生得自然情况只包括姓名、班级。二、数据结构设计本实验使用得数据结构就是广义表,广义表采纳头尾链表存储结构来实现。定义老师、学生结点结构体如下:typ e de f str u ct GL N ode{char na m e[1 0 0]; /*老师或学生得姓名*/cha r prof[1 00]; /*老师结点表示职称,学生结点表示班级*/ﻩi nt type; /*结点类型:0-老师,1-讨论生,2-本科生*/s truct {st r u c t G L Node *hp, *t p;} ptr; /*hp 指向同级得下一结点,tp 指向下级得首结点*/}GLi st;人员信息得表示形式为:高老师-教授—0、李刚—二班—1、李明-二班-2、人员信息中得姓名、职称、班级、人员类型用“-”隔开,如高老师—教授—0,“高老师"表示姓名,“老师"表示职称,“0”表示人员得类型就是老师;李刚—二班-1,“李刚”表示姓名,“二班"表示班级,“1”表示人员得类型就是讨论生;李明—二班-2,“李明”表示姓名,“二班”表示班级,“2”表示人员得类型就是本科生。广义表((高老师-教授-0,(李明—一班-2,王平-二班-2)),(李老师—副教授—0,(白梅-二班-1,(李刚-一班-2)))可以用图 3 表示.图 3 导师制用广义表实现示例三、算法设计 建立:建立导师广义表。G Lis t I nitG L ist(){ GL is t L = N U L L, *l; G Li st e; e = I ni t GLNo d e("t e acher l i", ”f ujiao s ho u”, 0); Inse rt Fi rs t_GL(&L, e); e = In itGL Node(”teachergao”, ”ji a oshou”, 0); Insert Fir st_GL(&L, e); l = &((L->...