cg
五星上将美玉
个人总结使用 请选择性参考
展开
-
选择排序.单链表存储
选择排序思路:1. 到无序序列中最小(最大)的值 2. 与“无序序列”中的第一位值进行交换(则该值变为“有序序列”中的最后一位)(回顾单链表的创建与输出)#include<stdio.h>#include<iostream>#include<cstdlib>using namespace std;typedef struct node{ int data; struct node *next;}...原创 2021-12-04 11:20:07 · 366 阅读 · 0 评论 -
Kruskal求最小生成树的权值之和
【问题描述】已知含有n个顶点的带权连通无向图,采用邻接矩阵存储,邻接矩阵以三元组的形式给出,只给出不包括主对角线元素在内的下三角形部分的元素,且不包括不相邻的顶点对。求该连通图的最小生成树中各边的权值之和。注:三元组来表一条带权的边,如2 1 7表示顶点2到顶点1的边的权值为7.【输入形式】第一行给出结点个数n和三元组的个数count,以下每行给出一个三元组,数之间用空格隔开。(注意这里顶点的序号是从1到n,而不是0到n-1,程序里要小心!)【输出形式】最小生成树的权值【样例输入】...原创 2021-11-14 18:54:33 · 8122 阅读 · 0 评论 -
输出有向图邻接矩阵
【问题描述】设存在有向图G,输入顶点数n,边数为m,输入边信息,输出其对应的邻接矩阵。【输入形式】首先输入顶点个数n(小于10),顶点名称依次为0至n-1;输入边数m;输入顶点之间的边(两个顶点之间用空格隔开)。【输出形式】输出生成的二维矩阵。【样例输入】460 20 31 21 02 33 1【样例输出】0 0 1 11 0 1 00 0 0 10 1 0 0Tips:注意到输入的遍没有按照二位矩阵双循环的方式判断,故选择输入一次边,原创 2021-11-13 18:16:02 · 3223 阅读 · 0 评论 -
图的遍历及其连通分量个数
问题描述】根据输入的图的邻接矩阵A,判断此图的连通分量的个数。【输入形式】第一行为图的结点个数n,之后的n行为邻接矩阵的内容,每行n个数表示。其中A[i][j]=1表示两个结点邻接,而A[i][j]=0表示两个结点无邻接关系。【输出形式】输出此图连通分量的个数。【样例输入】50 1 1 0 01 0 1 0 01 1 0 0 00 0 0 0 10 0 0 1 0【样例输出】2...原创 2021-11-11 17:40:22 · 3775 阅读 · 1 评论 -
队列的操作
设输入一整数序列:a1,a2,a3,...,an(输入序列以-2结束),编写算法实现如下功能:使用循环队列存储输入的整数(设队列的存储容量固定为6),当ai不等于-1时将ai入队;当ai等于-1时将当前队头元素出队。根据输入序列完成入队出队操作,并将队列中所有的数据输出(先输出队头元素),当队列为空时输出NULL。【输入形式】【输出形式】【样例输入】1 2 3 -1 -1 5 6 -2 //输入序列【样例输出】3 5 6 //整个过程结束后队列中现有元素情况Tips:队列要连起来的话,需要在逻原创 2021-11-02 19:52:44 · 295 阅读 · 0 评论 -
二叉树求第K位的值
【问题描述】编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值。【输入形式】以井号作为空树,输入一个序列,按照先序方式构建一颗二叉树,输入一个整数k【输出形式】输出先序序列中第k个位置的元素值【样例输入】ABD##E##C##5【样例输出】CK=5,如果要把f传入参数的话,就需要递归传来传去,非常的麻烦,所以咱们创建的时候就好好创建,有其他操作换个函数再说Tips:读取第K位的值,联想到”顺序数组“非常的方便,那不妨将二叉树先序输出,复制为数组 这样一...原创 2021-11-02 11:29:38 · 720 阅读 · 0 评论 -
二叉树交换子树
【问题描述】编写递归算法,将二叉树中所有节点的左、右子树相互交换。【输入形式】按先序序列输入二叉树各结点的值,结点的值是单字符,空子树输入空格。【输出形式】先输出交换后的二叉树的先序序列,再输出中序序列。【样例输入】例如三个的满二叉树,输入:a,b, , ,c, , (b后有两个空格,表示b有两棵子树;c后有两个空格)【样例输出】上面的满二叉树交换后的输出: acb //先序序列 cab //中序序列【样例说明】【评分标准】对于这种带空格的输入就很狗了,太刁钻了吧,...原创 2021-11-01 23:51:24 · 384 阅读 · 0 评论 -
复制二叉树。
问题描述】编写复制一颗二叉树树的非递归算法。【输入形式】先序序列创建二叉树,数据类型为字符型,空结点用'*'表示。【输出形式】<中序输出该二叉树,以空格分隔数据><回车><中序输出复制后的二叉树,以空格分隔数据>【样例输入】ABC**D**CE**F**【样例输出】C B D A E C FC B D A E C F【样例说明】【评分标准】tips:这道题很简单 基本没什么考的 传入传出 唯一就是复制操作时 根值传递完成后...原创 2021-11-01 17:33:06 · 486 阅读 · 2 评论 -
删除二叉树中以值x结点为根的子树
问题描述】编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。【输入形式】先序序列构造二叉树,结点数据类型为字符型,空结点用'#'表示。输入要删除的结点值。【输出形式】先序序列输出删除后的二叉树。【样例输入】ABC##D##C#F##C【样例输出】ABD【样例说明】【评分标准】...原创 2021-11-01 16:10:43 · 2415 阅读 · 3 评论 -
c列车编组
【问题描述】用于列车编组的铁路转轨网络是一种栈结构,其中,右边作为输入端,左边作为输出端。当右边轨道上的车皮编号顺序为1,2,3,4时,如果执行操作为进栈、进栈、出栈、进栈、进栈、出栈、出栈、出栈,则在左边轨道上的车皮编号顺序为2,4,3,1。编写一个算法,输入n个整数,表示右边轨道上n节车皮的编号,用上述转轨栈对这些车皮重新编排,使得编号为奇数的车皮都排在编号为偶数的车皮的前面,编号为偶数的车皮序列与输入时的序列正好相反。利用顺序栈和顺序队列的实现。【输入形式】输入n个整数,数值之间空格分隔,以回车结原创 2021-10-31 20:30:30 · 1426 阅读 · 0 评论 -
判断一个序列是否为合法序列
假设以1 和0 分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由1 和0 组成的序列,这里把可以正常操作的序列称为合法序列,否则称为非法序列。请编写算法,判定所给的操作序列是否合法。若合法,返回1,否则返回0。输入序列的长度不超过30个操作【输入形式】第一个数字为操作序列的总数,后面的为操作序列的具体内容,每两个操作之间以空格键隔开。【输出形式】如果操作序列为合法序列,输出1,如果操作序列为非法序列,输出0;tips:如果出现1.出栈时 栈为空..原创 2021-10-31 18:45:02 · 642 阅读 · 0 评论 -
利用顺序表计算间隔天数
问题描述】将每月天数存放在顺序表,计算某天到2021-10-10的间隔天数【输入形式】输入三个数,以空格为分隔【输出形式】一个整数【样例输入】1997 2 18【样例输出】9000【样例说明】【评分标准】#include<iostream>using namespace std;typedef struct node{ int *day; int length;}list;int main(){ list A; //设置一个list类型原创 2021-10-31 16:40:18 · 584 阅读 · 1 评论 -
单链表的排序与删除
#include<iostream>#include<cstdlib>#include<cstdio>using namespace std;typedef struct node{ int data; struct node* next;}node;node *Creatlist(){ node *head = new node[10]; head->next = NULL; node* pre = head;; int n; cha.原创 2021-10-31 15:36:05 · 479 阅读 · 0 评论 -
单链表节点的删除与排序
问题描述】输入一组整数,以单链表的形式存储,删掉里面存放偶数的节点,并按照从小到大的顺序排序,并输出【输入形式】整数序列,以空格为间隔,最多十个整数【输出形式】整数序列,以空格为间隔【样例输入】3 5 8 9 1 2 4【样例输出】1 3 5 9【样例说明】【评分标准】思路:节点的排序与冒泡排序基本相同,可以采用交换data值而不改变节点值 删除时可以不使用函数,在录入节点时就将其pass掉,符合条件的才能作为data录入#include<stdio....原创 2021-10-31 14:53:55 · 506 阅读 · 0 评论 -
顺序表比较
【问题描述】设A=(a1,...an)和B=(b1,...bn)均为顺序表,A'和B'分别为A和B中除去最大共同前缀后的子表。若A'=B'=空表,则A=B;若A'=空表,而B'≠空表,或者两者均不为空表,且A'的首元小于B'的首元,则A<B;否则A>B。试写一个比较A,B大小的算法。【输入形式】输入A、B两表的整数序列,整数之间用“,”号分开。【输出形式】A>B输出1;A=B输出0;A<B输出-1。【样例输入】5//该行为A表元素个数2,3,4,10,15//..原创 2021-09-23 19:59:10 · 238 阅读 · 0 评论 -
有序顺序表的插入
【问题描述】设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性。【输入形式】输入整数递增有序序列和插入的元素x,整数之间用逗号分开。【输出形式】输出插入后的有序序列,整数之间用逗号分开。【样例输入】6 //注:顺序表元素个数1,5,6,10,14,17 //注:该行是有序顺序表的数据;7 //注:该行是插入值x;【样例输出】1,5,6,7,10,14,17【样例说明】【评分标准】思路:通过条件判断插入的元...原创 2021-09-23 18:23:50 · 404 阅读 · 0 评论 -
顺序表的逆置
【问题描述】试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,...,an)逆置为(an,...,a1)。【输入形式】连续输入多个正整数,每数之间以一个空格隔开,最后一个数为-1作为结束标志。如 1 2 3 4 5 -1【输出形式】把输入的正整数逆序输出,每数之间以一个空格隔开。如 5 4 3 2 1【样例输入】1 2 3 4 5 -1【样例输出】5 4 3 2 1【样例说明】【评分标准】1.创建函数 2.逆置...原创 2021-09-22 20:01:28 · 470 阅读 · 0 评论 -
线性表 顺序结构
【问题描述】创建一个数据类型为整形的顺序结构的线性表完成输入,插入以及输出功能【输入形式】先输入元素个数 再输入数据 输入插入的位置 插入元素【输出形式】输出线性表【样例输入】31 2 32 4【样例输出】1 4 2 3【样例说明】插入的位置必须在范围内例如上述例子的范围在1到4超出直接退出【评分标准】投机取巧使用数组完成单一链表的输出数组作为顺序表并不是死板的位序,不能抽象的看作是储存条(插入元素必须移位)数组在输出时可以根据下标的变化,进行输出元素的改...原创 2021-09-20 21:11:28 · 341 阅读 · 0 评论 -
数组主元素(2013考研题)
【问题描述】已知一个整数序列A长度为N其中若存在a且a的个数大于N/2则称为A的主元素例如0 5 5 3 5 7 5 5 则为主元素 5又如0 5 5 3 5 1 5 7则中没有主元素。假设中的个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出的主元素。若存在主元素则输出该元素否则输出【输入形式】一个整数数组【输出形式】主元素【样例输入】0 5 5 3 5 7 5 5【样例输出】5【样例说明】长度为8,共有5个“5&rd原创 2021-09-15 18:25:45 · 703 阅读 · 0 评论 -
(1.数字统计 ) 计算0到n之间出现某个数x的次数(例如11出现1两次)
【问题描述】对于1到n的所有自然数,计算数字x(x是0-9之间的数字)出现的次数总和。例如:n=11,x=1,则输出4。因为1,2,3,4,5,6,7,8,9,10,11这个序列中1这个数字总共出现了4次。【输入形式】一个整数n(n <= 100000)和一个整数x(0<=x<=9)【输出形式】一个整数,表示x在1..n这个序列中出现的次数总和。【样例输入】11 1【样例输出】4#include<iostream>#include<原创 2021-09-15 13:52:59 · 628 阅读 · 0 评论