摘要。建立二叉树,用二叉链表存储,选择合适的遍历算法比如中序遍历算法访问叶子结点,并将叶子结点放入到单链表中,首先确定二叉树和单链表的存储结构。
学籍管理应用了数据结构中的数组知识,输入学生信息,如学号、姓名,学生选课情况,学生成绩。编写程序实现上述要求,建立学生信息文件,选课信息文件,分数信息文件,结果显示学生的选课情况、成绩不及格的学生情况、对课程名按不及格学生人数进行排序。选择界面操作中,选择1那么程序1(二叉树叶子结点放入到单链表中)运行,选择2学籍管理程序运行。
学籍管理系统使用电脑安全保存、快速计算、全面统计,实现信息管理的系统化、规范化、自动化。
关键词:二叉树,单链表,学籍管理。
目录。1 需求分析 2
1.1 二叉树的叶子结点连成单链表 2
1.2学籍管理 3
2 概要设计 3
2.1 存储结构设计说明 3
2.2算法流程图 4
3 程序** 5
4 调试分析 13
课程总结 17
参考文献 18
把二叉树的叶子结点按从左到右的顺序连成一个单链表,叶子结点为左右孩子都为空的二叉树结点。
二叉树用二叉链式存储,寻找叶子结点时用遍历二叉树的中序遍历算法从左到右找到叶子结点,链接时用叶子结点的rchild 域存放指针。
以建立数据文件方式对学生信息进行如下管理:
对学生、课程、成绩分别建立三个数据文件。
1 某个学生的选课情况。
成绩不及格的学生情况。
对课程名按不及格学生人数进行排序
建立模拟索引。
typedef struct node
char data;//定义数据类型。
struct node *next;//结点的next指针。
linklist;//单链表的存储结构。
typedef struct btnode
char data;//定义数据类型。
struct btnode *lchild,*rchild;//左右孩子指针。
bttree; /二叉树的二叉链表存储结构。
typedef struct student
inorder(t->rchild);
t=t->lchild; }
void fun1()
char str[max];
int i,n,k;linklist *p,*head;
bttree *root;
head=null;
cout<<"please intput a bitree node num:"
getchar();
cout<<"please input a string which length is " printf(""); root=cre_tree(str,0,n); cout<<"the tree is already created"< cout<<"the leaf node are:" cout<<"以链表输出叶子结点:" p=head; for(k=0;k /程序1结束。 /程序2**。 typedef struct student} void scan1(int n,stu *a)//输入选课信息函数。 int i; for(i=0;i void scan2(int n,stu *a)//输入分数函数。 int i; for(i=0;i getchar(); void fs**e(int n,stu *a)//保存文件。 file *fp; int i; if((fp=fopen("学生信息。txt","wb"))null) for(i=0;i if(fwrite(&a[i],sizeof(stu),1,fp)!=1) 课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2... 数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。... 班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...数据结构课程设计
数据结构课程设计
数据结构课程设计