
数据结构实验系列
是不是应该好好学习呢?
这个作者很懒,什么都没留下…
展开
-
C语言 直接插入排序与快速排序对比
实验五 常用排序算法的对比分析 实验学时:2 实验类型:验证 实验要求:必修 一、实验目的 通过本实验的学习,掌握几种典型的内部排序方法、特点,培养利用排序知识 解决问题的能力。 二、实验内容 分别实现直接插入排序、快速排序,并随机生成200000个数,比较各算法的时、 空性能和稳定性。掌握常用排序算法的特点,以便根据实际情况选择使用。 (1)、生成200000个随机整数; (2)、分别利用直接插入、快速排序实现排序; (3)、根据实验结果验证程序,并比较二种排序算法; 三、实验原理、方法和手段 排序是将一原创 2021-06-19 09:56:30 · 2120 阅读 · 5 评论 -
C语言 哈希表设计
一、实验目的理解哈希表实现机制,掌握哈希函数的构造方法和冲突处理方法,实现哈希表 上的查找、插入和删除操作。 二、实验内容 (1)、对于给定20个人的姓名,用除留余数法构造哈希函数,用线性探测再散列 法处理冲突,构造哈希表; (2)、对于给定的一个姓名,在哈希表上进行查找,如果其存在则将其删除,否 则将其插入到该哈希表上。 三、实验原理、方法和手段 实现查找的最基本技术是比较,如果能够建立记录的关键字与其存储地址之间 的之间对应,然后以0次或尽可能少的比较次数完成查找,将大大提高算法的效率, 这正是哈希原创 2021-06-04 18:36:17 · 2104 阅读 · 1 评论 -
C语言 图的深度优先遍历
实验内容(1)实现图的邻接矩阵表示,并创建图;(2)对邻接矩阵表示的图实现深度优先遍历;深度优先遍历的基本思想:① 选择一个起始点出发,并访问之;②一次从起始点的未访问过的邻接点出发,深度遍历图,直到图中与起始点有 路径相通的顶点都被访问过为止;③如此时图中尚有顶点未被访问过,则另选图中一个未访问过的顶点作起始点, 重复上述过程,直到所有顶点被访问过为止。...原创 2021-06-02 10:46:50 · 2929 阅读 · 1 评论 -
C语言 二叉树的遍历
一、实验目的本实验通过实现二叉树的链式存储实现及二叉树的基本操作,掌握递归算法的 设计、递归算法与非递归算法之间的转换和遍历技术,为后续章节学习图的内容奠 定基础。 二、实验内容 (1)、以链表为存储结构创建二叉树; (2)、分别用递归和非递归方式实现二叉树的中序遍历; 三、实验原理、方法和手段 链表存储二叉树通常具有两个指针域的链表作为二叉树的存储结构,其中每个 结点由数据域、左指针域和右指针域组成。两个指针域分别指向该结点的左、右孩 子。若某结点没有左孩子或右孩子,则对应的指针域为空。最后,还需要一原创 2021-06-02 10:40:42 · 230 阅读 · 0 评论 -
C语言 约瑟夫环问题
约瑟夫问题:有n个人围坐成圈,以1…n编号。从编号为1的人开始按照顺时针 方向报数,报到m者出圈;然后他的下一个人继续从1开始报数,报到m者出圈,……, 如此下去,直到所有人都出列,求出列的次序。 显然,n个人构成线性表,按照顺时针方向每个元素都有唯一的前趋和后继, 利用循环链表进行存储是最自然的方式。求出列次序的过程可以简单描述为: (1)、建立不带头结点的循环链表,每个结点代表约瑟夫环中的一个人; (2)、在循环链表中查找第s个结点,记p为指向该结点的指针,而pre为该结点的 前驱结点; (3)、从p所原创 2021-06-02 10:29:27 · 986 阅读 · 2 评论