数据结构算法
Titan_h
一只追逐梦想的菜鸟和一条会飞的鱼
展开
-
最短路径和最小生成树的区别于联系
最短路径是任意两个节点的路径最小最小生成树是总体节点的值最小原创 2022-03-22 00:12:19 · 551 阅读 · 0 评论 -
迪杰斯特拉算法超级简单易懂版
迪杰斯特拉超级简单易懂版原创 2022-03-21 00:17:42 · 73 阅读 · 0 评论 -
第四章 串数字和广义表
第四章 串数字和广义表 - 幕布第四章 串数字和广义表4.1 串的定义(内容受限的线性表)串是由0个或者多个字符组成的有限序列,一般记为s = "a1a2...an"(n>=0)s是串名 n为串长度 ai为串值 串的术语:空串:0个字符的串 ∅子串:任意连续的字符组成的子序列真子串 (不包含自身的所有子串)主串:包含子串的串称为主串字符的位置:通常称字符在序列中的序列号为该字符在串中的位置子串的位置子串的第一个字符在主串中的位置 空格串由一个或者多个空格组成的串相等:..原创 2022-03-17 11:55:52 · 140 阅读 · 0 评论 -
第五章 树和二叉树 - 幕布
第五章 树和二叉树 - 幕布第五章 树和二叉树5.1 树和二叉树的定义5.11树的基本定义:n个节点的有限集合n=0 为空树对于非空树t 有且仅有一个称之为根的节点除根节点以外其余的节点可分为m个不相交的有限集合t1,t2,...tm 其中每个集合本身又是一个数 并且可称为根的子树5.12 树的基本术语:结点: 书中的一个独立单元结点的度结点拥有子树的个数树的度 :树内各节点度的最大值叶子 度为零的节点称为叶子节点或者分支节点非终端节点 :度不为0的节点双亲和孩子节点的子树...原创 2022-03-17 11:52:35 · 535 阅读 · 0 评论 -
贪心算法1insersort
其实总体思路就是像我们对牌进行排序那样的,保证前面有序,后面的进行插队.//用贪心算法做 (插入排序)#include<iostream>#include<cstdlib>#include<stack>using namespace std;int main(void){ stack<int> s; stack<int> r; //随机生成数字 int n;//随机生成数的个数 cin>>n; while(原创 2020-08-13 15:11:58 · 134 阅读 · 0 评论 -
分治5残缺的棋盘
可以把他平均分成四份(因为棋盘本身就是4的倍数,而且残缺部分和其他的方块刚好构成四个,所以可以将棋盘分成4的倍数平均分成四份,没分都是4的倍数)分为左上,左下,右上,右下然后看残缺部分在哪里把没残缺的部分填上方格,让每个部分都有被覆盖的部分或者方格,方便递归然后递归的看每个小部分当只有4个方格的时候要么有坏掉的部分,要么就是有被填上东西了,然后就可以填方格。/*残缺的棋盘*/#include<iostream>#include<string.h>using nam原创 2020-07-22 20:45:41 · 99 阅读 · 0 评论 -
分治4循环比赛排比赛时间表
先确定其中的一个小部分,在通过小部分推其他部分/*循环比赛一共有n个选手,n=2m次方 (1)一个选手与其他n-1个选手进行一次比赛 (2)每个选手一天只能参赛一次; (3)循环赛在n-1天内结束。算法思路:按分治策略,我们可以将所有的选手分为两半,则n个选手的比赛日程表可以通过n/2个选手的比赛日程表来决定。 */ #include<iostream>using namespace std ;int n ;void Table(int n, int原创 2020-07-22 16:27:22 · 174 阅读 · 0 评论 -
分治3寻找第k小的数但是是两个有序数组
输入两个数组的大小和要查找的k的具体位置然后输入两个具体的数组由于是有序数组所以元素肯定有规律左边的大于右边的所以我们就用分治法将需要找的元素的位置确定下来;思路如图:后面几个的舍弃同理/*还是寻找第k小的数不过是题目已经将原数组排序,然后将排序后两个数组结合起来,找到新数组的第k个数*/ #include<iostream>using namespace std;int find_k(int *a,int *b,int as ,int ae, int bs,int be);原创 2020-07-21 21:43:08 · 158 阅读 · 0 评论 -
分治1寻找第k个数
题目大致意思就是给一个无序数组,让你来找到第k小的数输入nm,代表数组元素大小和查找的第k个元素第二行输入n个数输出第k大的数在原数组的位置。使用快排找数,快排不懂得可以去看这个博客(快排链接)大致意思就是将元素分组,定义一个flag 这个flag可以是数组中的任意一个元素(必须在数组中)左边的都比flag小,右边的都比他大,如果要找第k小的元素的话就看flag的位置是大于k还是小于k,大于k就说明在flag右边,小于k就在flag左边,递归遍历左右的元素比如原数组是取flag=25 ___原创 2020-07-20 11:54:54 · 222 阅读 · 0 评论 -
搜索二叉树
/*明天写搜索二叉树 二叉搜索树:首先建立的结构体和其他的差不多主要是他的建立的时候,有一个顺序在里面这个就有点不一样*/#include<stdio.h>#include<stdlib.h>struct tree_node{ int value; tree_node * left ; tree_node *right ;};void build...原创 2020-04-23 16:11:03 · 222 阅读 · 0 评论 -
二叉树的创建和遍历
二叉树的创建和遍历:/*什么是二叉搜索树二叉搜索树又叫二叉排序树或者二叉查找树 Position Find( ElementType X, BinTree BST ):从二叉搜索树BST中查找元素X,返回其所在结点的地址;Position FindMin( BinTree BST ):从二叉搜索树BST中查找并返回最小元素所在结点的地址;Position FindMax( BinT...原创 2020-04-23 16:07:47 · 186 阅读 · 0 评论