数据结构与算法实验
Spidy_harker
这个作者很懒,什么都没留下…
展开
-
数据结构与算法 实验8:图ADT的基本实现
假设图结构具有n个元素(顶点,n不大于500),数据元素为字符,如果是加权图,权值为整数。请编码实现图ADT。存储结构的选择: 1: 邻接矩阵 2: 邻接表执行的操作:1:创建图2:输出图的存储结构(邻接矩阵或邻接表,格式见后面说明)3:计算各个顶点的度(有向图时,分为入度和出度)4:深度遍历(需要输入遍历开始顶点)5:广度遍历(需要输入遍历开始顶点)0:退出注:(1)图的类型分为4种,1:无向,不加权2:有向,不加权3:无向,加权4:有向,加权(2)边用一对顶点原创 2020-05-12 16:55:17 · 1173 阅读 · 0 评论 -
数据结构与算法实验部分课后题程序答案
题目5.27 设- -棵二叉树以二叉链表表示, 试以成员函数形式编写有关二叉树的递归算法:(1)统计二叉树中度为1的结点个数。(2)统计二叉树中度为2的结点个数。(3)统计二叉树中度为0(叶结点)的结点个数。(4)统计二叉树的深度。.(5)统计二叉树的宽度,即在二叉树的各层上,具有结点数最多的那一层上结点总数。(6)从二叉树中删去所有叶结点。(7)计算二叉树中指定结点"p所在层次。...原创 2020-04-28 22:28:28 · 1868 阅读 · 1 评论 -
数据结构与算法实验 附加实验:判断输入序列是否是合法的栈输出序列
问题描述:已知自然数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, push 5, pop输入:可包含...原创 2020-04-27 15:45:31 · 1157 阅读 · 0 评论 -
数据结构与算法实验 实验7:算术表达式的语义二叉树 (表达式二叉树转化为中缀表达式,求值)
一个算术表达式的计算语义可以用二叉树唯一的表示出来。假设算术表达式的语义二叉树已经给出,请编码实现算术表达式的中缀形式(保持计算语义)的输出,并计算出该表达式的值。要求:1)使用二叉树的完全前序序列建立表达式的语义二叉树,空子树用符号@表示;2)算术运算符包括:+, -, *, / ; 运算量只考虑单数字字符(1位整数)3 ) 输出时用括号该表优先级;提示:1)递归执行下列步骤即可求...原创 2020-04-24 19:52:27 · 1222 阅读 · 0 评论 -
数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)
假设二叉数的数据元素为字符,采用二叉链式存储结构。请编码实现二叉树ADT,其中包括创建二叉树、遍历二叉树(深度、广度)、求二叉树的深度(高度)、计算二叉树的元素个数、计算二叉树的叶子数、二叉树的格式输出等。根据输入的符号,执行相应的操作。如下:C:创建二叉树,创建成功输出 “Created success!”。要求实现两种创建算法。输入数字“1" ,是根据完全前序序列创建二叉树,#表示空结点(...原创 2020-04-24 00:37:50 · 1329 阅读 · 0 评论 -
数据结构与算法实验: 附加实验 二叉树的建立和输出
问题描述:假设二叉树的元素为字符,采用二叉链式存储。请编写算法完成:(1)已知二叉树的中序和后序遍历序列,创建二叉树;(2)实现二叉树的分层输出;输入有三行:第一行,一个整数n,是二叉树中的元素(结点)个数;第二行,二叉树的中序遍历序列第三行,二叉树的后序遍历序列输出:如果二叉树为空,则输出“Binary tree is empty!”如果二叉树不空,则二叉树有几层则输出几行...原创 2020-04-23 22:33:58 · 451 阅读 · 0 评论 -
特殊矩阵的处理 实验5:稀疏矩阵ADT的十字链表实现,矩阵乘法/加法/转置
稀疏矩阵ADT的实现:在现实应用中,一些规模很大的特殊矩阵具有重要的地位。特殊矩阵可以采用二维数组存储,简单直接(顺序存储方式保持了矩阵中元素之间的二维线性关系),矩阵操作的算法都很简单,但是其空间的利用率很低(因为重复元素或零元素比较多)。 稀疏矩阵就是一种应用很广泛的特殊的矩阵,在实现稀疏矩阵ADT时通常采用“压缩”存储方案,即把只存储稀疏矩阵的非零元素,把稀疏矩阵抽象成为一个以三元组(行,...原创 2020-04-14 10:57:19 · 1721 阅读 · 0 评论 -
数据结构与算法实验:实验四 栈应用二 表达式求值(+、-、* 、/、^)
表达式求值是进行数据处理的最基本操作。请编写程序完成一个简单算术表达式的求值。要求如下:(1) 运算符包括:+、-、* 、/、^(乘方)、括号(2)运算量为数值常量,根据自己的能力可以对运算量做不同的约束,例如1位整数、多位整数、实数等(会有不同的测试用例);输入:一行,即表达式,以“=”结束。例如:5*(8-3)+6/5=输出:一行,即表达式的值。结果值为整数时输出为整数,如果有小数时...原创 2020-04-01 14:15:55 · 1596 阅读 · 0 评论 -
实验3:栈应用(1)
用栈ADT应用:对称符号匹配判断输入一行符号,以#结束,判断其中的对称符号是否匹配。对称符号包括:{ } 、 [ ] 、 ( )、 < >输出分为以下几种情况:(1)对称符号都匹配,输出 “ right. “ (2) 如果处理到最后出现了失配,则输出两行: 第一行:Matching failure. 第二行:loss of righ...原创 2020-04-07 16:55:30 · 273 阅读 · 0 评论