数据结构实验
实验记录
Wonderstruck1989
越努力越幸运
展开
-
哈夫曼树的编码与译码
要求:对输入的一串电文字符实现哈夫曼编码,并对给定的代码串进行译码,输出电文字符串。具体包括哈夫曼树的建立、哈夫曼编码的生成和编码文件的译码。假设举如下例子存储结构:模型:哈夫曼树节点类:package keshe;public class HuffNode { Character ch;//字符 int val;//判断值,往左走即置为0,往右走即置为1 i...原创 2020-01-31 15:51:58 · 2326 阅读 · 0 评论 -
双向循环链表操作的实现
要求:建立一个空表。在第i个位置插入新的元素x。删除第i个位置上的元素。取第i个位置上的元素。返回元素x第一次出现在双向循环链表中的位置号。求双向循环链表的长度,即元素个数。输出双向循环链表中所有的元素值。实现双向循环链表的就地逆置。基本思路1.建表2.插入3.删除4.就地逆置节点类:package keshe;public class DuLNode...原创 2020-01-31 15:43:55 · 1571 阅读 · 0 评论 -
图的创建及相关操作
题目要求:以邻接矩阵和邻接表作为图的存储结构,分别实现增加、删除边,增加、删除顶点,求各顶点的度(有向图包括入度和出度),存储结构之间的转换,判断图的连通性和输出连通分量的个数,给出顶点u和v,判断u到v是否存在路径,若存在,则输出u到v的一条简单路径。邻接矩阵:package keshe;import java.util.Scanner;//图的邻接矩阵的存储结构public cla...原创 2020-01-31 15:33:53 · 637 阅读 · 0 评论 -
折半查找和二叉排序树
一、实验目的1、掌握查找的特点。2、掌握折半查找的基本思想及其算法。3、熟悉二叉排序树的特点,掌握二叉排序树的插入、删除操作。二、实验内容1、设有关键字序列k={ 5 ,14 ,18 ,21 ,23 ,29 ,31 ,35 },查找key=21和key=25的数据元素。2、根据关键字序列{45、24、53、12、37、93}构造二叉排序树,并完成插入13删除关键字53和24的操作。三...原创 2020-01-30 11:09:08 · 2120 阅读 · 0 评论 -
图的基本操作
一、实验目的1、熟练掌握图的邻接矩阵和邻接表存储结构;2、掌握图的创建方法;3、掌握求顶点度的方法;4、掌握图的深度优先和广度优先遍历方法;二、实验内容1、分别定义图的邻接矩阵和邻接表存储结构;2、分别在两种存储结构下根据输入的顶点和边(或弧)创建图;3、分别在两种存储结构下实现求顶点度的操作;3、分别在两种存储结构下实现图的深度和广度优先遍历算法。三、实验环境Eclipse...原创 2020-01-30 11:04:25 · 1874 阅读 · 0 评论 -
二叉树的遍历
一、实验目的1、掌握二叉树的特点及其存储方式;2、掌握二叉树的创建;3、掌握二叉树先序、中序、后序遍历的基本方法及应用;二、实验内容1、用先序方法建立一棵二叉树;2、实现先序、中序和后序遍历二叉树的操作;3、实现统计二叉树叶子结点个数和计算二叉树深度的操作;三、实验环境Eclipse环境或C++编程环境四、实验步骤1、二叉链表节点类的定义;2、二叉树类的定义;3、建立下图...原创 2020-01-30 10:47:39 · 331 阅读 · 0 评论 -
单链表的基本操作
**实验一、单链表的基本操作一、实验目的1、掌握线性链表的操作特点,即指针是逻辑关系的映像。2、掌握动态产生单链表的方法。3、熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。4、熟练掌握单链表的取元素操作二、实验内容1、定义单链表类型并动态创建单链表;2、实现单链表的取元素操作、插入操作和删除操作;3、实现输出单链表中各元素值的操作;4、将单链表中的最小元素移到最前面...原创 2020-01-30 10:37:11 · 734 阅读 · 0 评论