自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 20 基于图的广度优先搜索策略(耿 7.11)

题目description:试基于图的广度优先搜索策略编写程序,判别以邻接表方式存储的有向图中,是否存在由顶点 vi 到顶点 vj(i 不等于 j)。注意:程序中涉及的图的基本操作必须在此存储结构上实现。input:第一行输入有向图的顶点数 n 和边数 m,用空格隔开;第二行输入顶点信息;分 m 行输入有向图边的信息,例如顶点对 1,2 表示从顶点 1 到顶点 2 的一条弧。最后一行输入待判别的顶点对 vi,vj.(0<m,n<100)output:若有向图中存在由顶点 vi 到顶

2021-06-20 11:03:34 490

原创 19 基于图的深度优先搜索策略(耿 7.10)

题目description:试基于图的深度优先搜索策略编写程序,判别以邻接表方式存储的有向图中,是否存在由顶点 vi 到顶点 vj 的路径(i 不等于 j)。注意:程序中涉及的图的基本操作必须在此存储结构上实现。input:第一行输入有向图的顶点数 n 和边数 m,用空格隔开;第二行输入顶点信息;分 m 行输入有向图边的信息,例如顶点对 1,2 表示从顶点 1 到顶点 2 的一条弧。最后一行输入待判别的顶点对 vi,vj.(0<m,n<100)output:若有向图中存在由顶点 v

2021-06-20 10:39:01 761

原创 18 建立二叉树的二叉链表(严 6.65)

题目description:已知一棵二叉树的前序序列和中序序列分别存于两个一维数组中,试编写算法建立该二叉树的二叉链表。input:分两行分别输入一棵二叉树的前序序列和中序序列。output:输出该二叉树的后序序列。sample_input:ABDFGCEHBFDGACEHsample_output:FGDBHECA思路主要递归函数*createBTNode()*采用先序建立二叉树从0开始遍历数组str1[],每次在数组str2[]中找到与数组str1[]当前结点相等的结点

2021-06-19 22:31:12 2166 1

转载 17 输出以二叉树表示的算术表达式(严 6.51)

题目description:编写程序,输出以二叉树表示的算术表达式,若该表达式中含有括号,则在输出时应添上。input:按先序输入一行字符,其中#表示取消建立子树结点,即所有叶子节点均为#。output:输出该二叉树所表示的算术表达式(若表达式中含有括号,则在输出时应添上)。sample_input:*+a(###b#)##c##sample_output:(a+b)*c思路和上一篇差不多,后面写个中序遍历输出即可。代码#include<stdio.h>#inc

2021-06-19 21:35:45 152

原创 16 计算二叉树叶子结点数目(耿 6.14)

题目description:假设将循环队列定义为:以域变量 rear 和 length 分别指示循环队列中队尾元素的位置和内含元素的个数。编写相应的入队列和出队列的程序,并判断循环队列是否队满(在出队列的算法中要返回队头元素)。input:假设队列数组为 Queue[MAXSIZE],第一行输入队列大小 N,第二行开始输入若干入队元素,队满时,停止入队。第三行输入出队元素。output:输出入队出队操作后的循环队列,并返回出队元素的队头元素。sample_input:53 4 6 2 7

2021-06-19 21:30:29 1235

原创 13 以十字链表为存储结构实现矩阵相加(严 5.27)

题目description:以十字链表为存储结构,编写程序,将稀疏矩阵 B 加到稀疏矩阵 A 上。input:第一行输入四个正整数,分别为稀疏矩阵 A 和稀疏矩阵 B 的行数 m、列数 n、稀疏矩阵 A 的非零元素个数 t1 和稀疏矩阵 B 的非零元素个数 t2。接下来的 t1+t2 行三元组表示,其中第一个元素表示非零元素所在的行值,第二个元素表示非零元素所在的列值,第三个元素表示非零元素的值。output:输出相加后的矩阵三元组。sample_input:3 4 3 21 1 11

2021-06-19 21:00:39 336

原创 08 逆波兰式(耿 3.8)

题目description:假设表达式由单字母变量和双目四则运算算符构成。试编写程序,将一个通常书写形式且书写正确的表达式转换为逆波兰式。input:输入由单字母变量和双目四则运算算符构成的表达式。output:输出其逆波兰式。sample_input:(a+b)csample_output:ab+c思路建表输入字符,创建双向循环链表。注意双向循环链表的next和pre的指向,由于是双向,故最后一个结点的next指针要指向头节点LOCATE操作简单来说,就是输入n个

2021-06-19 00:10:30 337

原创 22 Dijkstra 算法(严 7.42)

题目description:编写程序,实现以邻接表作存储结构,求从源点到其余各顶点的最短路径的 Dijkstra算法。input:第一行输入顶点数 n 和边数 m;第二行输入顶点信息;分 m 行输入 m 对顶点 vi,vj(表示由顶点 vi 到顶点 vj(i 不等于 j)的边)以及该弧的权值。output:输出从源点到其余各顶点的最短路径(不可达用-1 表示)。sample_input:6 111 2 501 3 101 5 452 3 152 5 103 1 203 4 1

2021-06-18 23:53:35 418

原创 23 构造哈希表(耿 8.12)

题目description:选取哈希函数 H(k)=(3k)%11,用线性探测再散列法处理冲突。试在 0-10 的散列地址空间中,编写程序,对关键字序列 (22,41,53 46,30,13,01,67)构造哈希表,并求等概率情况下查找成功的平均查找长度。input:无output:输出等概率情况下查找成功的平均查找长度。sample_input:无sample_output:2思路设置了一个二维数组HASH[20][2]来作为哈希表,HASH[i][0]存储数据,HASH[i]

2021-06-18 23:12:51 1215

原创 26 二叉排序树的合并(严 9.38)

题目description:假设将循环队列定义为:以域变量 rear 和 length 分别指示循环队列中队尾元素的位置和内含元素的个数。编写相应的入队列和出队列的程序,并判断循环队列是否队满(在出队列的算法中要返回队头元素)。input:假设队列数组为 Queue[MAXSIZE],第一行输入队列大小 N,第二行开始输入若干入队元素,队满时,停止入队。第三行输入出队元素。output:输出入队出队操作后的循环队列,并返回出队元素的队头元素。sample_input:53 4 6 2 7

2021-06-18 21:59:06 383

原创 25 二叉排序树的插入和删除(严 9.35、9.36 和 9.37)

题目description:假设二叉排序树以后继线索链表作存储结构,编写程序,满足以下要求:1. 输出该二叉排序树中所有大于 a 小于 b 的关键字;2. 在二叉排序树中插入一个关键字;3. 在二叉排序树中删除一个关键字。input:第一行按先序输入二叉排序树各结点(结点值大于 0),其中-1 表示取消建立子树结点;第二行输入要求 1 中 a、b,用空格隔开;第三行输入要求 2 中要插入的关键字;第四行输入要求 3 中要删除的关键字。output:按照中序序列,分三行输出要求 1、

2021-06-18 21:47:25 837

原创 24 二叉排序树的判别(耿 8.6)

题目description:试编写程序,判别给定的二叉树是否为二叉排序树。设此二叉树以二叉链表作存储结构,且树中结点的关键字均不同。input:按先序输入二叉树各结点(结点值大于 0),其中-1 表示取消建立子树结点。output:若该二叉树为二叉排序树,则输出 yes;否则,输出 no。sample_input:12 8 4 -1 -1 10 -1 -1 16 13 -1 -1 18 -1 -1sample_output:yes思路输入创建二叉排序树由于题目要求是按先序建立

2021-06-16 21:17:26 1021

原创 09 循环队列(严 3.30)

题目description:假设将循环队列定义为:以域变量 rear 和 length 分别指示循环队列中队尾元素的位置和内含元素的个数。编写相应的入队列和出队列的程序,并判断循环队列是否队满(在出队列的算法中要返回队头元素)。input:假设队列数组为 Queue[MAXSIZE],第一行输入队列大小 N,第二行开始输入若干入队元素,队满时,停止入队。第三行输入出队元素。output:输出入队出队操作后的循环队列,并返回出队元素的队头元素。sample_input:53 4 6 2 7

2021-06-08 22:02:55 985

原创 12 以三元组表为存储结构实现矩阵相加(耿 5.7)

题目description:假设稀疏矩阵 A 和 B 均以三元组表作为存储结构。试编写矩阵相加的程序,另设三元组表 C 存放结果矩阵。矩阵大小为 m 行 n 列(0<m,n<100)。input:第一行输入 t1,t2(0<t1,t2<100) ,t1 和 t2 分别是矩阵 A 和 B 中非零元素的个数,后面t1+t2 行分别输入 A 和 B 中的元素,用三元组表示。output:输出三元组表 C。sample_input:3 31 2 33 2 13 4 2

2021-06-06 19:47:07 703

原创 10 k阶斐波那契数列

题目description:试利用循环队列编写 k 阶斐波那契数列中前 n+1 项 (f(0),f(1),…,f(n))的程序,要求满足:f(n)<=max 而 f(n+1)>max,其中 max 为某个约定的常数。(注意:本题所用循环队列的容量仅为 k,则在程序执行结束时,留在循环队列中的元素应是所求 k 阶斐波那契序列中的最后 k 项 f(n-k+1),…,f(n))。input:输入常数 max,阶数 k,用空格隔开。output:输出 k 阶斐波那契数列中的最后 k 项 f

2021-06-06 19:32:04 252

原创 11 循环右移(耿 5.2)

题目description:编写程序,将一维数组 A(下标从 1 开始)中的元素循环右移 k 位,要求只用一个元素大小的附加存储。input:第一行输入一维数组 A 的长度 n 和循环位移位数 k(0<n<100;0<k<100),用空格分开。第二行输入 n 个元素。output:输出循环右移 k 位后的一维数组。sample_input:6 31 2 3 4 5 6sample_output:4 5 6 1 2 3思路过程如下图所示,重复k次,即完成

2021-06-04 23:48:51 212

原创 07 表达式括号匹配(严 3.19)

题目description:假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”、方括号“[”和“]”和花括号“{” 和 “}” ,且这三种括号可按任意的次序嵌套使用(如:…[…{…}…[…]…]…[…]…(…)…)。编写判别给定表达式中所含括号是否正确配对出现的程序(已知表达式已存入数据元素为字符的顺序表中)。input:输入算术表达式,换行结束。output:若给定表达式中所含括号正确配对,则输出 yes,否则输出 no。sample_input:[5+(6-3)]-(2+3)]

2021-06-04 23:28:46 283

原创 06 LOCATE 操作(严 2.38)

题目description:设有一个双向循环链表,每个结点中除有 pre,data 和 next 三个域外,还增设了一个访问频度域 freq。在链表被起用之前,频度域 freq 的值均初始化为零,而每当对链表进行一次 LOCATE(L,x)的操作后,被访问的结点(即元素值等于 x 的结点)中的频度域 freq 的值便增 1,同时调整链表中结点之间的次序,使其按访问频度非递增的次序排列,以便始终保持被频繁访问的结点总是靠近表头结点。试编写符合上述要求的LOCATE 操作的程序。input:第一行输入

2021-06-04 15:30:05 237

原创 05 单链表的删除(严 2.29)

题目description:已知 A,B 和 C 为三个非递减有序的线性表,均以单链表作为存储结构。现要求对 A表作如下操作:删去那些既在 B 表中出现又在 C 表中出现的元素。试对单链表编写实现上述操作的算法,并释放 A 表中的无用结点空间。input:第一行输入 3 个正整数 m,n,p(m,n,p<=100),用空格分开,表示三个线性表中的元素个数,其后 3 行依次输入 A,B,C 表中的元素。output:输出实现上述操作后的 A 表。sample_input:8 5 61

2021-06-04 14:57:33 330

原创 04 单链表的归并(耿 2.11)

题目description:假设两个按元素值非递减有序排列的线性表 A 和 B,均以单链表作为存储结构,试编写程序,将 A 表和 B 表归并成一个按元素值非递增有序排列的线性表 C,并要求利用原表(即 A 表和 B 表的)结点空间存放表 C。input:第一行输入两个正整数 m,n(m,n<=100),用空格分开,表示线性表 A 和 B 中元素个数,其后两行分别输入单链表 A 和 B。output:输出单链表 C。sample_input:5 51 3 7 12 162 6 7

2021-06-03 16:10:50 324

原创 03 顺序表的删除(严 2.29)

题目description:已知 A,B 和 C 为三个非递减有序的线性表,现要求对 A 表作如下操作:删去那些既在 B 表中出现又在 C 表中出现的元素。试对顺序表编写实现上述操作的算法。input:第一行输入 3 个正整数 m,n,p(m,n,p<=100),用空格分开,分别表示三个线性表中的元素个数,其后 3 行依次输入 A,B,C 表中的元素。output:输出实现上述操作后的 A 表。sample_input:8 5 61 2 3 4 5 6 6 72 3 5 9 12

2021-06-03 13:13:15 220

原创 02 线性表的就地逆置(耿 2.9)

题目description:试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1,a2,…,an)逆置为(an,an-1,…,a1)。(1) 以一维数组作存储结构。(2) 以单链表作存储结构。input:第一行输入线性表元素个数 elenum;(0<elenum<1000)第二行输入 elenum 个数,作为线性表中的元素(a1,a2,…,an)。output:分两行分别输出要求(1)和要求(2)的线性表逆置结果(an,an-1,…,a1)。sa

2021-06-02 21:48:52 1966

原创 01 顺序表的插入运算(耿 2.4)

顺序表的插入运算(耿 2.4)题目思路代码题目description:已知顺序表 L 递增有序,编写程序,将 X 插入到线性表的适当位置上,以保持线性表的有序性。input:第一行输入顺序表元素个数 elenum;(0<elenum<1000)第二行输入顺序表 L;第三行输入插入值 X。output:输出插入 X 后的有序顺序表sample_input:72 3 4 5 6 7 81sample_output:1 2 3 4 5 6 7 8思路链接代码#

2021-06-02 21:07:28 228

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除