数据结构实验
文章平均质量分 86
lczzcl.
这个作者很懒,什么都没留下…
展开
-
数据结构实验:查找
根据输入的姓名,通过哈希表来查找对应的哈希值,如果找到则返回对应的位置索引,否则返回-1表示没有找到。计算哈希值:根据除留余数法,将姓名的每个字符的ASCII码值相加得到哈希值,然后取哈希值与哈希表大小的余数作为最终的哈希值。3. 查找姓名:根据哈希函数计算出哈希值,并进行线性探测再散列,直到找到对应的姓名或遍历完整个哈希表。需要构造一个具有30个人的班级姓名的哈希表,使用汉语拼音表示姓名,假设姓名最长为20个字符。需要进行哈希函数的计算,处理冲突的线性探测再散列,并进行插入和查找操作。原创 2024-04-23 15:38:10 · 734 阅读 · 0 评论 -
数据结构实验:排序
给出n个学生的考试成绩信息,每条信息由学号、姓名与分数组成。要求首先按学号对信息进行排序,然后再按分数进行排序,并要求分数相同的仍然按学号有序,输出每次排序的结果。【基本要求】自定义任意一组n个学生,n>=20,学号、姓名和分数可任意取值(不得抄袭雷同)。要求分别实现根据学号和分数两种不同的排序,【测试数据】自定义二十组以上的学生,包括学号、姓名和分数,注意:不得抄袭雷同。学号: %d, 姓名: %s, 分数: %d\n"学号: %d, 姓名: %s, 分数: %d\n"比较函数,用于按分数排序。原创 2024-01-05 14:43:23 · 875 阅读 · 0 评论 -
数据结构实验:图
printf("请输入顶点 %c 的邻接顶点:", ALG->adjlist[i].vex);printf("请输入顶点 %c 的邻接顶点:", ALG->adjlist[i].vex);printf("顶点 %c :", ALG.adjlist[i].vex);printf("顶点 %c :", ALG.adjlist[i].vex);printf("请输入第%d条边的弧头和弧尾: ", i);printf("图为空\n");printf("请输入图的顶点:");printf("请输入开始节点:");原创 2023-12-20 19:44:51 · 782 阅读 · 1 评论 -
数据结构实验:树与二叉树
用二叉链表作为存储结构,定义函数createBiTree(BiTree* bi_tree)建立二叉树,声明遍历函数。puts("请按先序序列输入一颗二叉树的结点数据,以'*'来代表空值:");puts("请按先序序列输入一颗二叉树的结点数据,以'*'来代表空值:");printf("\n先序序列:");printf("\n中序序列:");printf("\n后序序列:");printf("\n先序序列:");printf("\n中序序列:");printf("\n后序序列:");原创 2023-12-20 19:39:26 · 890 阅读 · 0 评论 -
数据结构实验:回文判断
从键盘以此读入一个以@为结束符的字符序列,判断此序列是否为形如“序列1 & 序列2”模式的字符序列。例如,字符序列“a+b&b+a”是属于该模式的序列,而“1+3&3-1”则不是回文。通过该实验,掌握栈的相关基本概念,认识栈是插入和删除集中在一端进行的线性结构,掌握栈的“先入后出”操作特点。如果&后新输入的字符与栈s弹出的字符不依次对应相等,输出序列1与序列2不相同,返回FALSE*字符序列“a+b&b+a”形如“序列1 & 序列2,而“1+3&3-1”则不是回文。定义存放输入字符栈的栈s。原创 2023-12-20 19:32:51 · 402 阅读 · 1 评论 -
数据结构实验:约瑟夫环问题
首先刚开始的次序为1,2,3,...,7,8。从第一个人开始遍历,数到m,也就是第m个人就出去,先打印出列人的序号,再把这个结点从表中删除,继续遍历,继续找到下一个出列的人打印序号。报max的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。然后我们进入约瑟夫环问题,成员依次报数,每当达到报数上限时,先覆盖上限值,再在循环单链表中删除当前节点,继续新一轮的报数,知道链表中剩下最后一个储存数据的结点。printf("请输入m的值\n");原创 2023-12-20 19:28:38 · 1230 阅读 · 1 评论