数据结构
文章平均质量分 50
SweetCinderella
贪心侧重于证明
展开
-
哈夫曼树压缩文件
1.问题描述准备一个文件,对该文件各种字符进行Huffman编码,将该文件翻译成Huffman文件。2.基本要求(1)设计哈夫曼树的结点存储结构(2)设计编码和破译方法(3)输入:源文件(4)输出:Huffman编码文件3.程序实现:(1)代码:#include<iostream>#include <fstream> #include<map>#include<queue>#include <string&g原创 2022-05-29 17:24:24 · 339 阅读 · 0 评论 -
双向冒泡排序
1.问题描述:实现双向冒泡排序。2.实验要求:(1)设计待排序记录的存储结构;(2)设计双向冒泡排序算法;(3)输入:任意输入n个整数,数据个数和数据由键盘输入;(4)输出:各趟的排序结果;3.程序实现:(1)代码:#include <iostream>using namespace std;void swap(int* a, int* b)//交换两个数据元素的值{ int temp = *a; *a = *b; *b = t原创 2022-05-29 10:48:21 · 312 阅读 · 0 评论 -
动态查找——二叉排序树
1.问题描述:判别一棵二叉树是否为二叉排序树,如果是,在其上实现查找功能。2.实验要求:(1)以二叉链表为存储结构,创建二叉树;(2)设计判别算法;(3)输入所要查找表的数据;(4)输出判别结果;3.程序实现:(1)代码:...............原创 2022-05-28 23:40:16 · 378 阅读 · 0 评论 -
存储结构转换问题
1.问题描述:以图的邻接矩阵方式创建一有向图,然后根据此存储,求出此有向图的邻接表存储方式,并输出邻接表。2.实验要求:(1)定义图的邻接矩阵、邻接表的存储结构。(2)按图的邻接矩阵结构创建图。(3)根据图的邻接矩阵存储,求出邻接表存储。(4)输入:有向图。(5)输出:图的邻接矩阵和邻接表。3.程序实现:(1)代码:#include <iostream>using namespace std;const int MaxVexNum = 10;//最大原创 2022-05-19 18:27:19 · 152 阅读 · 0 评论 -
二叉树叶子结点个数统计
1.问题描述:输入一棵二叉树,求出其叶子结点个数。2.实验要求:(1)设计二叉树的二叉链表存储结构(2)设计求叶子结点个数的递归算法(3)输入一棵二叉树(4)输出二叉树的叶子节点个数示例:ab#c##d##二叉树叶子结点个数为:3.程序实现:(1)代码:#include<iostream>using namespace std;//二叉树结点typedef struct BTNode { char root; struct BTNod原创 2022-05-18 19:55:17 · 20966 阅读 · 11 评论 -
迷宫问题的设计
1.问题描述:实验问题:设计程序求解出迷宫的一条通路。2.实验要求:(1)设计迷宫和通路的存储结构;(2)设计求解通路的算法;(3)输入:可在程序中设定,也可键盘输入;(4)输出:迷宫,入口,出口,通路路径。3.程序实现:(1)代码:#include<iostream>using namespace std;int mg[6][8] = { {1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,1,1}, {1,1,0原创 2022-05-16 12:59:35 · 394 阅读 · 0 评论 -
有序表的合并
1.问题描述把两个有序表归并为一个有序表。2.基本要求(1)建立模型,设计表的存储结构(2)设计好归并算法(3)输入LA,LB的元素(4)输出归并后的有序表LC示例:LA LB LC 11,22,33,44 1,13,17,39 1,11,13,17,22,33,39,44 11 1,13,17,19 1,11,13,17,39 空 1,13,17,19 1,13,17,19 3.程序实现:(1)代码#原创 2022-05-14 12:21:51 · 444 阅读 · 0 评论 -
约瑟夫环的实现
1.问题描述背景:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。约瑟夫环是华丽的分割线实验问题:编号为1,2,3,4,5......n的n个人围成一圈,从编号k开始报数,报到m的人出圈。从下一位开始新一轮报数,直至所有人出圈。2.实验要求:(1)建立模型,确定存储结构。原创 2022-05-13 18:44:19 · 273 阅读 · 0 评论 -
二叉排序树
1.动态查找:.动态查找所含的数据元素的个数可以随着所做的插入、删除等操作增加或减少。2.定义:二叉排序树(Binary SortTree)是具有下列性质的二叉树:⑴若左子树不空,则左子树上所有结点的值均小于根结点的值;若右子树不空,则右子树上所有结点的值均大于根结点的值。简记为左小右大(2)左右子树也都是二叉排序树。示例:注意:对二叉排序树进行中序遍历得到有序序列3 12 24 37 45 53 61 78 90 1003.二叉排序树的查找过程:(1)若根结点的关键字值原创 2022-05-12 20:10:13 · 464 阅读 · 0 评论 -
数据结构笔记——图
图的详细知识点一、图的定义及相关术语图的定义图的术语1.边和顶点的关系2.图的分类3.子图4.生成树、生成森林图的抽象数据类型二、图的存储及操作邻接矩阵定义性质:邻接矩阵相关算法邻接表定义性质有向图的逆邻接表邻接表相关算法十字链表定义十字链表相关算法邻接多重表定义邻接多重表相关算法一、图的定义及相关术语图的定义图的术语1.边和顶点的关系注:路径上边的数目称为路径长度2.图的分类(5)稀疏图、稠密图(稀疏与稠密是相对而言的)注意:强连通图和弱连通图是对有向图而言的。3原创 2022-05-10 16:09:37 · 661 阅读 · 0 评论 -
树和森林转化为二叉树及树和森林的遍历
⑴)加线——树中所有相邻兄弟之间加一条连线。(2)去线——对树中的每个结点,只保留它与第一个孩子结点之间的连线,删去它与其它孩子结点之间的连线。(3)层次调整——以根结点为轴心,将树顺时针转动一定的角度,使之层次分明。第三点可以直接记为“左是孩子,右是兄弟”...原创 2022-05-09 23:11:39 · 1949 阅读 · 0 评论 -
数据结构笔记——树
一、树的基本操作二、树的存储结构1.双亲表示法:示例:存储表示为:#define maxnode //树的结点最大个数template <Class T>{T data;//数据域int parent;//指针域};NodeType t[maxnode];优缺点:该存储方式对于查找双亲和根结点十分方便,但若查找某结点的孩子结点,需要查询整个数组。2.孩子表示法:(1)多重链表表示法:方案一:每个结点指针域的...原创 2022-05-01 23:55:30 · 636 阅读 · 0 评论 -
二叉树的应用——赫夫曼树
1.赫夫曼树(最优二叉树)的基本概念2.赫夫曼树的存储实现根据二叉树性质:非空二叉树,叶子节点数为n0,度为2的节点数为n2,则n0=n2+1。可知n个叶子结点的赫夫曼树有2n-1个结点3.存储结构注意权值一定是整型4.赫夫曼树的特点5.构造赫夫曼树的方法最优前缀编码图中:左0右1...原创 2022-05-01 22:13:32 · 616 阅读 · 0 评论 -
单链表笔记
1.性质:顺序性:对单链表的访问只能顺序访问。独立性:结点之间的联系由指针指向确定。各结点存储位置相对独立。2.定义:3.基本操作实现:单链表初始化:template <class T> T Linklist(Linklist<T> &L) //创建空链表L{ head = new Node; //创建新的头结点 head->next = null;}销毁单链表:template <class T>原创 2022-04-23 22:42:04 · 559 阅读 · 0 评论 -
线索二叉树笔记
一、线索二叉树的定义与结构1.定义:保存结点在某种遍历中直接前驱与直接后继的位置信息,可以利用二叉树的二叉链表存储结构中的空指针域来指示。这些指向直接前驱结点和直接后继结点的指针称为线索,加了线索的二叉树称为线索二叉树。2.优点:反映了前驱结点和hou...原创 2022-04-22 21:47:52 · 560 阅读 · 0 评论 -
寻找二叉树的最大值
思路:(1)将二叉树分为如下几种:1.仅有根结点;2.有根结点,有左孩子,无右孩子;3.有根结点,有右孩子,无左孩子;4.有根结点,有左孩子、右孩子;(2)根据不同种类的二叉树比较结点所指向的值的大小:1.不用比较,返回根结点指向的值;2.根节点与左孩子进行比较;3.根节点与右孩子进行比较;4.根节点与左、右孩子进行比较;(3)比较的同时,递归其左,右孩子,返回左子树,右子树中较大的值算法:template <class T>int max原创 2022-04-18 16:52:37 · 4187 阅读 · 1 评论 -
二叉树笔记
一、数的基本用语:双亲和孩子,兄弟,祖先和子孙不过多介绍。有序树和无序树;数据结构中讨论的一般是有序树。森林:m棵互不相交树的集合。二、二叉树:1.定义:有限元素集合,由根和不相交的左子树,右子树组成。2.5种形态:3.性质:性质1:第i层上最多有2^(i-1)个节点(i>=1)。性质2:深度为k的二叉树的中,最多有2^(k-1)个结点(k>=1)。性质3:非空二叉树,叶子节点数为n0,度为2的节点数为n2,则n0=n2+1。...原创 2022-04-17 15:05:50 · 814 阅读 · 0 评论 -
斐波那契数列详解
递归计算斐波那契数列第n个位置上的值原创 2022-04-09 23:26:17 · 1414 阅读 · 0 评论 -
中缀表达式转换成后缀表达式知识简介 求3+4/(25-(6+15))*8的后缀表达式
求3+4/(25-(6+15))*8的后缀表达式详细方法原创 2022-04-07 21:40:37 · 1004 阅读 · 0 评论