![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
星辰_大海
这个作者很懒,什么都没留下…
展开
-
邻接表到邻接矩阵
假设无向图G采用邻接表存储,编写一个算法输出邻接矩阵。输入第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1)。第二行表示顶点0可直接到达的顶点编号,其他行定义相同。输出输出图G的邻接矩阵。整数矩阵大小为n*n,表示图的邻接关系。数字为0表示不邻接,1表示邻接。样例输入5 1 3 4 0 2 3 1 3 4 0 1 2 4 0 2 3样例输出01011 10110 01011 11101 1...原创 2018-06-12 19:47:31 · 853 阅读 · 0 评论 -
有向图的出度计算
假设有向图G采用邻接表存储,设计算法求出图G中每个顶点的出度。输入第一行为图中顶点的个数n 第二行为图的边的条数e 第三行为依附于一条边的两个顶点的数据信息。输出图G中每个顶点的出度。第一行表示顶点0的出度,其他行定义相同。样例输入5 6 0 1 0 3 1 2 1 3 4 0 4 3样例输出2 2 0 0 2#include <iostream>using namespace st...原创 2018-06-12 19:49:58 · 7481 阅读 · 1 评论 -
(数据结构)无向图顶点度的计算
假设无向图G采用邻接矩阵存储,设计算法求出图G中每个顶点的度。输入第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1)。接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。输出图G中每个顶点的度。第一行表示顶点0的度,其他行定义相同。样例输入5 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 ...原创 2018-06-12 19:52:42 · 37342 阅读 · 0 评论 -
约瑟夫问题的实现
n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人,请你编程计算出最后胜利者标号数。(要求用单循环链表完成。)输入第一行为人数n; 第二行为报数k。输出输出最后...原创 2018-05-21 01:30:58 · 166 阅读 · 0 评论 -
双向链表的操作问题
建立一个长度为n的带头结点的双向链表,使得该链表中的数据元素递增有序排列。(必须使用双向链表完成,数据类型为整型。)输入第一行:双向表的长度; 第二行:链表中的数据元素。输出输出双向链表中的数据元素的值。样例输入10 2 4 6 3 5 8 10 21 12 9样例输出2 3 4 5 6 8 9 10 12 21#include<iostream>#include<cstring...原创 2018-05-21 01:35:57 · 550 阅读 · 0 评论 -
单链表的删除操作的实现
建立长度为n的单链表,删除第i个结点之前的结点。输入第一行为自然数n,表示链式线性表的长度; 第二行为n个自然数表示链式线性表各元素值; 第三行为指定的删除参数i。 输出指定删除位置合法时候,输出删除元素后的链式线性表的所有元素,元素之间用一个空格隔开。 输入不合法,输出"error!"。样例输入5 1 2 3 4 5 3样例输出1 3 4 5#include <iostream>#i...原创 2018-05-21 01:25:38 · 2896 阅读 · 0 评论 -
单链表的插入操作的实现
建立长度为n的单链表,在第i个结点之前插入数据元素data。输入第一行为自然数n,表示链式线性表的长度; 第二行为n个自然数表示链式线性表各元素值; 第三行为指定插入的位置i;第四行为待插入数据元素data。 输出指定插入位置合法时候,输出插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。输入不合法,输出"error!"。样例输入5 1 2 3 4 5 3 6样例输出1 2 6 3 4 5...原创 2018-05-21 01:20:09 · 18415 阅读 · 2 评论 -
顺序表插入操作的实现
建立长度为n的顺序表,在指定的数据元素item之前插入数据元素data。如果指定的数据元素item不存在,则将data插入到顺序表的尾端。(数据类型为整型)输入第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定的数据元素item; 第四行为要插入的数据元素data;输出输出结果为顺序表中的数据元素。样例输入10 10 20 30 40 50 60 70 80 90 100 50 ...原创 2018-05-21 01:16:00 · 6016 阅读 · 0 评论 -
逆置顺序表
建立长度为n的顺序表,然后将表中的数据元素逆置,即若表中原来的数据元素序列为(a0,a1,a2,…,an),则逆置后的数据元素序列为(an,an-1,an-2,…,a1,a0)。(数据类型为字符型)输入第一行为顺序表的长度n; 第二行为顺序表中的数据元素. 输出输出为逆置后的顺序表.样例输入7 ABCDEFG样例输出G F E D C B A#include<stdio.h>#incl...原创 2018-05-21 01:12:34 · 2800 阅读 · 0 评论 -
哈希表(开放定址法处理冲突)
采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。输入第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。输出如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。样例输入13 11 16 74 60 43 54 90 46 31 29 88 77 16样例输出3,1...原创 2018-06-11 12:26:24 · 1533 阅读 · 0 评论 -
哈希表(链地址法处理冲突)
采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用链地址法。建立链表的时候采用尾插法。输入第一行为哈西表的长度m; 第二行为关键字的个数n; 第三行为关键字集合; 第四行为要查找的数据。输出如果查找成功,输出该关键字所在哈希表中的地址和比较次数;如果查找不成功,输出-1。样例输入13 13 16 74 60 43 54 90 46 31 29 88 77 78 79 16...原创 2018-06-11 12:00:30 · 3342 阅读 · 0 评论 -
输出利用二叉树存储的普通树的度
普通树可转换成相应的二叉树(该二叉树的根结点一定缺少右儿子),反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的普通树的度。普通树的度为其结点儿子数的最大值。相应的二叉树可利用二叉树的先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写...原创 2018-05-23 16:37:23 · 635 阅读 · 0 评论 -
统计利用二叉树存储的森林中树的棵数
普通树及其构成的森林均可转换成相应的二叉树,反之亦然。故而可以根据相应的转换方法去统计某一二叉树对应的森林中树的棵数。相应的二叉树可利用先序递归遍历算法创建。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建...原创 2018-05-23 12:30:36 · 1071 阅读 · 1 评论 -
输出利用先序遍历创建的二叉树的层次遍历序列
利用先序递归遍历算法创建二叉树并输出该二叉树的层次遍历序列。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树的层次遍历序列。需要注意输入数据序列中的"#"字符和非...原创 2018-05-22 22:35:49 · 2903 阅读 · 2 评论 -
输出利用先序遍历创建的二叉树中的指定结点的度
利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的度。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符“#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的度。注意输入数据序列中的字符“#”和非“#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。输入输入用例分2行输入,第一行接受键盘输入的由大写英文字符和“#”字符构成的一个字符串(用于创建对应...原创 2018-05-27 13:58:39 · 1551 阅读 · 0 评论 -
输出利用先序遍历创建的二叉树中的指定结点的孩子结点
利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的儿子结点。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的儿子结点。注意输入数据序列中的"#"字符和非"#"字符的序列及个数关系,这会最终决定创建的二叉树的形态。输入输入用例分2行输入,第一行接受键盘输入的由大写英文字符和"#"字符构成的一个字符串(...原创 2018-05-27 13:51:35 · 2467 阅读 · 1 评论 -
交换排序算法的设计与实现——冒泡排序
编程实现冒泡排序,按照非递减排序,测试数据为整数。输入第一行是待排序数据元素的个数; 第二行是待排序的数据元素。输出第一行输出第一趟冒泡排序的结果。样例输入10 50 36 41 19 23 4 20 18 12 22样例输出36 41 19 23 4 20 18 12 22 50#include <iostream>using namespace std;int main(int...原创 2018-05-27 11:32:31 · 555 阅读 · 0 评论 -
利用二叉树中序及后序遍历确定该二叉树的先序序列
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及后序遍历结果,要求输出其先序遍历结果。输入第一行为中序序列 第二行为后续序列输出输出为遍历二叉树得到的先序序列样例输入BFDAEGC FDBGECA样例输出ABDFCEG已知一棵二叉树的后序序列和中序序列,构造该二叉树的过程如下:1. ...原创 2018-05-24 10:15:47 · 2438 阅读 · 0 评论 -
已知二叉树的后序序列和中序序列,求先序序列。
后续遍历=左子树,右子树,根,中序遍历=左子树,根,右子树已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?由后序遍历序列是DBCEFGHA,可以看出整棵树的根节点是A,再看中序遍历序列EDCBAHFG A是根节点,左子树由A左边的元素EDCB构成,右子树由A右边的元素HFG构成 也就是 a /----\ EDCB--HFG 看左子树有4个元素EDCB ...原创 2018-05-24 10:31:14 · 14694 阅读 · 2 评论 -
邻接矩阵到邻接表
假设无向图G采用邻接矩阵存储,编写一个算法输出邻接表。输入第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1),接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。输出输出图G的邻接表。第一行表示顶点0可直接到达的顶点编号。其他行定义相同。样例输入5 0 1 0 1 11 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0样例输出13...原创 2018-06-12 19:27:52 · 773 阅读 · 0 评论 -
折半查找的实现
编写程序实现折半查找算法。输入第一行是查找表的长度n 第二行是查找表中的数据元素 ; 第三行是要查找的数据元素的关键字.输出查找成功返回位序,不成功返回-1 ,第二行为比较的次数。样例输入11 5 13 19 21 37 56 64 75 80 88 92 100样例输出-1 4#include <iostream>using namespace std;int BinSreach...原创 2018-05-24 21:18:46 · 2837 阅读 · 0 评论 -
输出用先序遍历创建的二叉树是否为完全二叉树的判定结果
利用先序递归遍历算法创建二叉树并判断该二叉树是否为完全二叉树。完全二叉树只能是同深度的满二叉树缺少最后一层倒数连续个叶子结点。先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树的二叉链表存储结构。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符"#"时表示该结点不需要创建,否则创建该结点。最后判断创建完...原创 2018-05-24 21:07:09 · 782 阅读 · 2 评论 -
利用二叉树中序及先序遍历确定该二叉树的后序序列
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果。输入输入数据占2行,其中第一行表示中序遍历结果,第二行为先序遍历结果。输出对测试数据,输出后序遍历结果。样例输入BFDAEGC ABDFCEG样例输出FDBGECA#include<stdio...原创 2018-05-24 10:55:00 · 296 阅读 · 0 评论 -
二叉排序树的实现和查找
按照给定的关键字集合,建立二叉排序树。在建立的二叉排序树上查找指定的关键字,查找成功,输出找到该关键字比较的次数;查找不成功,输出-1.输入关键字个数n; 关键字集合; 要查找的关键字;输出查找成功输出比较的次数,否则输出-1。样例输入12 25 18 46 2 53 39 32 4 74 67 60 11 74样例输出4#include<iostream>#include<s...原创 2018-05-25 23:08:25 · 5693 阅读 · 0 评论