
数据结构
Loganer
这个作者很懒,什么都没留下…
展开
-
剑指offer_reConstructBinaryTree_重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值{1,2,5,3,4,6,7}代码/** * Definition for binary tree * struct TreeNode { * int val;原创 2021-01-18 22:52:26 · 5520 阅读 · 0 评论 -
数据结构课程实验->族谱
族谱管理 族谱(或称家谱)是一种以表谱形式,记载一个以血缘关系为主体的家族世系繁衍和重要人物事迹的特殊图书体裁。族谱是中国特有的文化遗产,是中华民族的三大文献(国史,地志,族谱)之一,属珍贵的人文资料,对于历史学、民俗学、人口学、社会学和经济学的深入研究,均有其不可替代的独特功能。本题对族谱管理进行简单的模拟,以实现查看祖先和子孙个人信息、插入家族成员、删除家族成员、修改家族成员信息、...原创 2018-12-02 14:46:06 · 7629 阅读 · 16 评论 -
约瑟夫环游戏->链表和顺序表实现
#include<cstdio>#include<cstdlib>#include<iostream>using namespace std;typedef struct Staff{ int number; struct Staff *next;}LinkNode;void DispList(LinkNode *L);void...原创 2018-11-27 12:41:45 · 541 阅读 · 0 评论 -
数据结构课程实验 -> 翻译程序
翻译程序 小明初学C++,已明白了四则运算、关系运算、逻辑运算、赋值运算、输入输出、简单选择和循环结构的用法,但他的英语不太好,记不住太多的保留字,于是他利用汉语拼音做保留字,山寨C++,发明了一种表达自己思想的算法描述规则。 规则很简单:他将开始程序头部以一个拼音名字标记,C++程序中的"{,}"用拼音“kaishi,jieshu”直观表示;选择和循环只采用一种单一的结构,且保留...原创 2018-12-03 14:16:03 · 384 阅读 · 0 评论 -
数据结构 图的邻接表存储结构及DFS/BFS遍历
//邻接表#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#define INF 999using namespace std;typedef struct ArcNode{ int adjvex; struct ArcNode...原创 2018-12-16 15:48:50 · 884 阅读 · 0 评论 -
数据结构->顺序表二分查找算法
#include<iostream>#include<algorithm>#include<cstdio>using namespace std;typedef struct NodeType{ int data; int length;}NodeType;NodeType seqlist[100];int cmp(NodeTy...原创 2018-12-18 14:26:36 · 1198 阅读 · 0 评论 -
蓝桥杯:标题: 分巧克力(二分)
标题: 分巧克力 儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。 为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足: 1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2...原创 2019-03-19 19:44:09 · 218 阅读 · 1 评论 -
LeetCode 20. 有效的括号
给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false...原创 2019-05-10 21:20:36 · 99 阅读 · 0 评论 -
LeetCode 102. 二叉树的层次遍历
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]/** * Definition for a bin...原创 2019-05-11 12:45:01 · 93 阅读 · 0 评论 -
LeetCode 103. 二叉树的锯齿形层次遍历
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]/** * De...原创 2019-05-16 17:19:05 · 113 阅读 · 0 评论 -
2019 天梯赛 PTA L2-032 彩虹瓶 (25 分)
L2-032彩虹瓶(25分)彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码...原创 2019-05-26 18:31:13 · 288 阅读 · 0 评论 -
LeetCode 207. 课程表
现在你总共有n门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能...原创 2019-05-17 21:22:43 · 495 阅读 · 0 评论 -
YTU OJ 3403: 宣传部肖同学
3403: 宣传部肖同学题目描述肖同学编程非常厉害,第十届 ACM 省赛肖同学和超超组队成了冠军队伍,肖同学对“超超说自己女装,但是不女装”非常不满,肖同学就告诉了他的好朋友,好朋友又告诉了其他好朋友,问一共有多少同学知道超超要女装。输入输入第一行包含两个整数 n, m,n 是同学的个数,同学编号 1 2 3......n,肖同学是1号,接下来是 m 行输入,每行输入两个数 ...原创 2019-10-31 21:28:55 · 271 阅读 · 0 评论 -
简单识别BMP图像里物体
.htypedef unsigned char BYTE;typedef unsigned short WORD;typedef unsigned int DWORD;typedef long LONG;//位图文件头定义; //其中不包含文件类型信息(由于结构体的内存结构决定, //要是加了的话将不能正确读取文件信息) typedef struct tagBI...原创 2019-07-02 15:02:38 · 650 阅读 · 0 评论 -
数据结构课程实验->迷宫->分别用链栈,链队,顺序栈,顺序队实现。
迷宫 实现老鼠走迷宫程序。 功能要求:①输出每一步尝试的状态,直到走完迷宫或无法走通②在迷宫有解的前提下,输出从起点到终点的最短通路。 设计要求:迷宫至少10×10;起点和终点可自定义,也可固定;迷宫可随机生成,也可固定,可以无解;两个功能可用不同算法和程序实现;输出可以是图形界面,也可以是文本界面(如下例)。# # # # # # # # # ## 0 # # 0 0...原创 2018-10-30 19:26:58 · 809 阅读 · 0 评论 -
树状数组->模板
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;int n,m,i,j,k;int a1,b,x,y;int a[2000010],c[2000010];int lowbit(int x){...原创 2018-10-28 20:19:03 · 153 阅读 · 0 评论 -
数据结构->链表的学习(建立链表与插入)
第一步先建立一个链表并输出。#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node *next;};int main(){ int a,n,m,i,j,k; struct node *head,*p,*q,*t; scanf("%d"...原创 2018-08-27 16:13:06 · 239 阅读 · 0 评论 -
YTU OJ 2242: 回文(栈和队列)
2242: 回文(栈和队列) 题目描述 假设称正读和反读都相同的字符序列为“回文”,例如,‘abba‘ 和 ‘abcba‘是回文,‘abcde‘ 和 ‘ababab‘ 则不是回文。试写一个算法判别读入的一个以‘@‘为结束符的字符序列是否是“回文”。输入abcba输出是回文#include<cstdio>#include<iostream&...原创 2018-08-30 17:28:36 · 483 阅读 · 0 评论 -
YTU OJ 2250 : 查找最小的k个元素(栈和队列)
2250: 查找最小的k个元素(栈和队列) 题目描述题目:输入n个整数,输出其中最小的k个。例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4输入输入:8 41 2 3 4 5 6 7 8输出1 2 3 4样例输入8 41 2 3 4 5 6 7 8样例输出1 2 3 4来源#include&...原创 2018-08-30 19:03:32 · 1150 阅读 · 3 评论 -
YTU OJ 2235: 拆分链表(线性表)
2235: 拆分链表(线性表) 题目描述编写一个函数将一个头指针为a的单链表A分解成两个单链表A和B,其头指针分别为a和b,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。 输入输入链表长度n:6输入数据:1 3 4 5 6 9输出输出链表A:1 4 6输出链表B:3 5 9样例输入71 ...原创 2018-09-05 18:03:10 · 1128 阅读 · 0 评论 -
2238: 括号匹配(栈和队列)
2238: 括号匹配(栈和队列) 题目描述假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”,方括号“[”和“]”和花括号“{”和“ ”,且这三种括号可按任意的次序嵌套使用(如:…[…{… …[…]…]…[…]…(…)…)。编写判别给定表达式中所含括号是否正确配对出现的算法。输出结果YES 或者 NO。输入5+{[2X5]+2}输出YES样例输入8-[...原创 2018-09-03 17:03:21 · 404 阅读 · 0 评论 -
YTU OJ 2239: 十进制与八进制的转换(栈和队列)
2239: 十进制与八进制的转换(栈和队列) 题目描述对于输入的任意一个非负十进制整数,利用栈打印输出与其等值的八进制数。输入111输出157 #include<cstdio>#include<iostream>#include<cstdlib>using namespace std;typedef struc...原创 2018-09-12 16:02:48 · 582 阅读 · 0 评论 -
数据结构->链表逆置算法
#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;int a[99];typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LinkNo...原创 2018-09-13 20:33:07 · 1472 阅读 · 0 评论 -
二叉树的建立,查找,输出,先序,中序 ,后序遍历 具体操作
//注释改日补上。。。#include<iostream>#include<cstdio>#include<cstdlib>#include<malloc.h>using namespace std;typedef char ElemType;typedef struct node{ ElemType data; ...原创 2018-10-01 20:36:49 · 333 阅读 · 0 评论 -
YTU OJ2344: 先序遍历二叉树
2344: 先序遍历二叉树 给定一颗二叉树,要求输出二叉树的深度以及先序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。 输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3...原创 2018-10-02 14:48:40 · 547 阅读 · 0 评论 -
邻接矩阵 Dijkstra 算法
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<malloc.h>#define INF 99999#define MAXV 100using namespace std;typedef struct{ ...原创 2018-10-08 17:59:34 · 807 阅读 · 0 评论 -
数据结构课程实验 考试报名管理 链表和顺序表实现
考试报名管理 考试报名系统是对考试报名管理的简单模拟,用菜单选择方式完成下列功能:输入考生信息;输出考生信息;查询考生信息;添加考生信息;修改考生信息;删除考生信息。每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成。 要求:定义一个专用的类型 ElemType,用于描述考生信息,数据结构用一个类描述,命名为List,包括数据、关系和基本操作;数据结构的存...原创 2018-10-16 15:20:21 · 1751 阅读 · 4 评论 -
二叉排序树 基础操作 增删改查
//本人比较懒,写不写注释看心情#include<iostream>#include<malloc.h>#include<cstdio>#include<cstdlib>using namespace std;typedef struct node{ int key; char data; struct no...原创 2018-10-19 12:42:32 · 488 阅读 · 0 评论 -
Kruskal_最小生成树_算法
//注释尽早补上#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<malloc.h>#define INF 99999#define MAXV 100using n...原创 2018-10-10 21:05:53 · 215 阅读 · 0 评论 -
YTU 2620: B 链表操作
2620: B 链表操作Description(1)编写一个函数createlink,用来建立一个动态链表(链表中的节点个数由参数count来控制)。节点结构如下:struct Node{int data;Node * next; };函数createlink的声明如下:Node * createlink(int count);(2)编写一个函数printlink,用来遍历输出一个链表。函数pri...原创 2018-05-25 16:35:38 · 268 阅读 · 0 评论