![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构课程
soul,,,明灵
QQ1486266298
展开
-
数据结构与算法实验-实验八:图ADT的基本实现
图ADT的基本实现假设图结构具有n个元素(顶点,n不大于500),数据元素为字符,如果是加权图,权值为整数。请编码实现图ADT。存储结构的选择: 1: 邻接矩阵 2: 邻接表执行的操作:1:创建图2:输出图的存储结构(邻接矩阵或邻接表,格式见后面说明)3:计算各个顶点的度(有向图时,分为入度和出度)4:深度遍历(需要输入遍历开始顶点)5:广度遍历(需要输入遍历开始顶点)0:退出注:(1)图的类型分为4种,1:无向,不加权2:有向,不加权3:无向,加权4:有向,加权(原创 2020-05-14 11:26:11 · 1027 阅读 · 0 评论 -
数据结构与算法实验-(附加实验)文本串的哈夫曼编码和译码
文本串的哈夫曼编码和译码哈夫曼编码是最基本的字符压缩编码。对文本进行哈夫曼编码后再进行信息通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。 请设计一个程序,输入一行字符文本串(最大长度为10000个字符),构造其哈夫曼编码。根据需要(传输前)选择对字符文本进行编码(将字符文本转...原创 2020-05-03 22:30:33 · 1440 阅读 · 3 评论 -
数据结构与算法实验-(附加实验)二叉树的建立和输出
二叉树的建立和输出问题描述:假设二叉树的元素为字符,采用二叉链式存储。请编写算法完成:(1)已知二叉树的中序和后序遍历序列,创建二叉树;(2)实现二叉树的分层输出;输入有三行:第一行,一个整数n,是二叉树中的元素(结点)个数;第二行,二叉树的中序遍历序列第三行,二叉树的后序遍历序列输出:如果二叉树为空,则输出“Binary tree is empty!”如果二叉树不空,则二叉树有几层则输出几行...原创 2020-04-26 11:43:55 · 589 阅读 · 0 评论 -
数据结构与算法实验-实验七:算术表达式的语义二叉树
算术表达式的语义二叉树一个算术表达式的计算语义可以用二叉树唯一的表示出来。假设算术表达式的语义二叉树已经给出,请编码实现算术表达式的中缀形式(保持计算语义)的输出,并计算出该表达式的值。要求:1)使用二叉树的完全前序序列建立表达式的语义二叉树,空子树用符号@表示;2)算术运算符包括:+, -, *, / 运算量只考虑单数字字符(1位整数)3 ) 输出时用括号该表优先级;提示:1)...原创 2020-04-26 10:04:14 · 1011 阅读 · 0 评论 -
数据结构与算法实验-(附加实验)判断输入序列是否是合法的栈输出序列
判断输入序列是否是合法的栈输出序列问题描述:已知自然数1,2,…,N(1≤N≤10000)依次入栈(即a<b当且仅当a先于b入栈),请设计算法判断输入序列C1,C2,…,CN是否为可能的出栈序列。例如:N=5 时,3,4,2,1,5是一个可能的出栈序列,因为其可以按如下操作获得: push 1, push 2, push 3, pop, push 4, pop, pop, pop...原创 2020-04-25 20:41:06 · 666 阅读 · 0 评论 -
数据结构与算法实验-实验六:二叉树ADT的二叉链式实现
实验6:二叉树ADT的二叉链式实现假设二叉数的数据元素为字符,采用二叉链式存储结构。请编码实现二叉树ADT,其中包括创建二叉树、遍历二叉树(深度、广度)、求二叉树的深度(高度)、计算二叉树的元素个数、计算二叉树的叶子数、二叉树的格式输出等。根据输入的符号,执行相应的操作。如下:C:创建二叉树,创建成功输出 “Created success!”。要求实现两种创建算法。输入数字“1" ,是根据完全前...原创 2020-04-25 19:19:22 · 1025 阅读 · 0 评论 -
记数据结构第四次书面作业的一些算法题
文章目录栈与递归练习递归练习栈练习栈与递归练习递归练习假设线性表的数据元素为整数,采用带头结点的单链式存储,请分别设计递归算法完成:(1)求线性表的长度;(2)求所有元素的平均值。第一题所用函数如下:int len(struct node *t) { if(t->next==NULL) return 1; else...原创 2020-04-16 22:10:17 · 420 阅读 · 0 评论 -
数据结构与算法实验-实验五:特殊矩阵的处理
特殊矩阵的处理实验五:稀疏矩阵ADT的实现:在现实应用中,一些规模很大的特殊矩阵具有重要的地位。特殊矩阵可以采用二维数组存储,简单直接(顺序存储方式保持了矩阵中元素之间的二维线性关系),矩阵操作的算法都很简单,但是其空间的利用率很低(因为重复元素或零元素比较多)。 稀疏矩阵就是一种应用很广泛的特殊的矩阵,在实现稀疏矩阵ADT时通常采用“压缩”存储方案,即把只存储稀疏矩阵的非零元素,把稀疏矩阵抽...原创 2020-04-13 14:50:10 · 788 阅读 · 0 评论 -
记数据结构第三次书面作业的一些算法题
线性表练习文章目录线性表练习2-112-212-252-282-11试编写一个函数,以不多于3n/2的平均比较次数,在一个有n个整数的顺序表A中找出具有最大值和最小值的整数。这个题我第一眼看到,感觉是快排,但是仔细想了一下,发现暴力就可以过,如下:void maxmin(int *a,int n){ int maxn=a[1]; int minn=a[1]; f...原创 2020-04-06 13:06:54 · 618 阅读 · 0 评论 -
数据结构与算法实验-实验四:栈应用(2)
栈应用(2)表达式求值是进行数据处理的最基本操作。请编写程序完成一个简单算术表达式的求值。要求如下:1.运算符包括:+、-、*、-、^(乘方)、括号2.运算量为数值常量,根据自己的能力可以对运算量做不同的约束,例如1位整数、多位整数、实数等(会有不同的测试用例);输入:一行,即表达式,以“=”结束。例如:5*(8-3)+6/5=输出:一行,即表达式的值。结果值为整数时输出为整数,如果...原创 2020-04-03 22:41:38 · 617 阅读 · 0 评论 -
数据结构与算法实验-实验三:栈应用(1)
栈应用(1)用栈实现:输入一行符号,以#结束,判断其中的括号是否匹配。括号包括:{ } 、 [ ] 、 ( )、 < >如果匹配,输出 right如果不匹配,给出错误提示。包括:(1)对称符号都匹配,输出 “ right “(2)处理到某个符号时不匹配了,输出 " The $ character ‘*’ is wrong." ,其中$是出错符号的序号,*是出错的符号;(...原创 2020-04-03 17:07:08 · 1001 阅读 · 0 评论 -
数据结构与算法——第1次测验(第一章):算法与编码
第一章测验文章目录第一章测验第一题第二题第一题分治策略是算法设计的重要策略之一,该策略的基本思想是把问题进行分解成一些子问题,通过子问题的求解完成对原问题的求解。其关键是分解和合并,好的分解或合并方法才会产生高效的分治算法。分治策略设计出的算法最常见的就是递归算法。但是如果在分解时,分解出的子问题有很多是重复的,那么这样的分治(递归)算法求解问题的效率就非常低。例如斐波那契数问题,如果采用...原创 2020-04-01 17:35:49 · 238 阅读 · 0 评论 -
数据结构与算法实验-实验二:线性表ADT应用
线性表ADT应用实验二:一元多项式的基本运算实验目的:掌握用线性表实现一元多项式的基本运算。实验内容:使用链式存储实现一元多项式的加法、减法、乘法和求导。即:C(x)= A(x)+B(x);C(x)= A(x)-B(x) C(x)= A(x)*B(x) C(x)= A’(x)菜单:1)C :分别创建两个多项式A(x)和B(x),其中 输入时按照 指数的升序顺序输入,遇到系数为0则停止。...原创 2020-04-01 16:54:13 · 887 阅读 · 0 评论 -
数据结构与算法实验-实验一:线性表基本操作
线性表基本操作文章目录线性表基本操作题目1题目2题目3题目1线性表是最常见和常用的ADT。假设线性表的元素为整数,请基于顺序存储结构实现线性表ADT。基本功能包括:(1)建立线性表;输入有两行,第一行是一个整数n,线性表的长度; 第二行是n和数据元素(2)插入:输入两个整数,即元素插入的位置和元素值(3)删除:输入一个整数,即要删除的元素(4)搜索:输入一个整数,即搜索元素...原创 2020-04-01 16:42:34 · 2538 阅读 · 0 评论