
数据结构实验
张鱼·小丸子
这个作者很懒,什么都没留下…
展开
-
【数据结构】实验十 图的遍历
实验内容:使用邻接矩阵或链接表来存储图,并编程实现DFS和BFS算法。#include<iostream>using namespace std;#define MaxInt 32767 // 极大值 ∞#define MVNum 100 // 最大顶点数#define MAXSIZE 100 // 队列的最大长度bool visit_DFS[MVNum] = { false }; // 定义一个DFS访问数组 并初始化为false(代表被访问过).原创 2022-05-29 14:52:06 · 773 阅读 · 0 评论 -
【数据结构】实验九 构造哈夫曼树和生成哈夫曼编码
实验九:构造哈夫曼树和生成哈夫曼编码实验内容:构造一棵哈夫曼树,输出相应的哈夫曼编码以及平均查找长度,并针对一条消息进行编码以及解码。#include<iostream>#include<string.h>using namespace std;#define MAXSIZE 100typedef struct // 哈夫曼数的结构体{ int weight; // 结点的权值 int parent, lchild, rchild; // 结点的双亲 左孩子 .原创 2022-05-29 00:35:55 · 5690 阅读 · 1 评论 -
【数据结构】实验八 树的基本操作和遍历
实验要求:1、前序遍历生成二叉树;2、前序、中序、后序遍历上述生成的二叉树(使用递归);3、使用非递归方式中序遍历二叉树;4、输出二叉树的深度、节点个数。#include<iostream>#define TElemType char#define ElemType BiTree#define MAXSIZE 1000using namespace std;typedef struct BiTNode // 二叉树的二叉链表存储表示{ TElemType data;.原创 2022-05-12 23:36:37 · 666 阅读 · 0 评论 -
【数据结构】实验七 求一个矩阵的马鞍点
实验内容:如果矩阵A中存在这样的一个元素,满足条件:A[i][j]是第i行中值最小的元素,且是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。设计程序计算一个m*n的矩阵A的所有马鞍点。实验目的:掌握数组基本操作及算法设计。#include<iostream>#define MAX 50using namespace std;void InitArray(int a[MAX][MAX], int m, int n) // 初始化矩阵中的元素{ cout <<.原创 2022-04-28 20:49:13 · 4035 阅读 · 0 评论 -
【数据结构】实验六 字符串基本操作及模式匹配算法
实验要求:1、使用顺序结构存储字符串,完成字符串基本操作:如初始化、求长度、字符串连接等;2、扩展模式匹配的BF算法(只能实现匹配主串中第一次出现的位置),使其能找出主串中出现模式串的所有位置信息。3、扩展BF算法使其实现近似匹配,即如果模式串和子串中不同位数小于某个给定阈值,则表示匹配成功。4、实现KMP算法(选做)。#include<iostream>#define MAXSIZE 100 // 定义串的最大长度using namespace std;typedef s.原创 2022-04-22 14:29:35 · 3110 阅读 · 0 评论 -
【数据结构】实验五 递归的应用
实验内容:假设单链表中存放的是整数1、用递归方法求解单链表的长度;2、用递归方法求解单链表中所有数的平均数;3、用递归方法求单链表中倒数第k个结点元素。实验要求:理解递归的含义,写出递归算法。#include<iostream>#define ElemType intusing namespace std;typedef struct LNode // 单链表结构体{ ElemType data; // 结点的数据域 struct LNode* next; // 结点.原创 2022-04-14 22:00:00 · 1891 阅读 · 0 评论 -
【数据结构】实验四 栈与队列的应用(括号匹配与舞伴问题)
1、给定一个只包含括号(假设只包含‘(’和‘)’)的表达式,使用栈判断表达式中的括号是否匹配。例如:(()(()))该式中括号匹配成功;((()())该式中括号匹配失败。2、舞伴问题。假设周末舞会上,男士们和女士们进入舞厅时各自排成一队。跳舞开始时,依次从男队和女队的队首各出列一名配成一对舞伴。若两队人数不同,则较长的那队中未配对的人等待下一首舞曲。是写一算法模拟上述配对问题。注意:使用队列实现上述问题。可以有所扩展,譬如舞厅大小有限,每次只允许几组人跳舞,跳完之后可以继续排队,等待下一个舞曲等。本.原创 2022-04-08 16:15:00 · 1816 阅读 · 1 评论 -
【数据结构】实验三 求两个集合(用单链表表示)的并、交和差运算
实验要求:在实验二的基础上,使用单链表表示集合,编写三个算法(求交算法、求并算法、集合求差),并输出最终的结果。例如:集合A为(3、4、1、6),集合B为(2、3、6、7)交集为:(3、6)并集为:(1、2、3、4、6、7)差集为:(1、4)(注意:差集C=A-B,即属于A但不属于B的元素的集合)#include<iostream>using namespace std;#define ElemType chartypedef struct LNode // 定义结构体.原创 2022-04-08 16:00:00 · 6383 阅读 · 0 评论 -
【数据结构】实验二 实现单链表各种基本运算的算法
内容:编写程序实现单链表各种基本运算,并编写main方法测试程序可行性。主要完成以下功能:1、初始化单链表;2、一次采用尾插法插入a、b、c、d、e元素;3、输出单链表;4、输出单链表长度;5、判断单链表是否为空;6、输出单链表的第3个元素;7、输出元素d的位置;8、在第4个元素位置上插入f元素;9、输出插入后的单链表;10、删除单链表中的第2个元素;11、输出删除后的单链表;12、(选做)单链表“原地”逆转,要求算法空间复杂度为O(1)。#include<iostre.原创 2022-04-08 15:45:00 · 3631 阅读 · 0 评论 -
【数据结构】实验一 实现顺序表各种基本运算的算法
题目:实现顺序表各种基本运算的算法要求:1、建立一个顺序表,输入n个元素并输出;2、查找线性表中的最大元素并输出;3、在线性表的第i个元素前插入一个正整数x;4、删除线性表中的第j个元素;5、将线性表中的元素按升序排列;6、将线性表中的元素就地逆序(只允许用一个暂存单元);#include<iostream>#define SIZE 1000using namespace std;typedef struct{ int *a; // 该线性表存储整型数据 a为存.原创 2022-04-08 15:00:00 · 3475 阅读 · 0 评论