自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 二叉树创建

先序和中序创建二叉树void creat(Tree &T,int f1,int f2,int n){//f1、f2分别为各个子树先序和中序序列中第一个元素的指针,n为当前二叉树中的元素个数 int k; if(n<=0){//当树中元素为0时,结点指针赋NULL,递归返回 T=NULL; return; } for(int i=f1;i<f1+n;i++){//中序序列中寻根 if(in[i]==pre[f2]){//找到则创建结点 k=i-f1;

2021-03-22 12:18:31 512

原创 最短路径——Dijkstra算法简单实现

最短路径——Dijkstra算法简单实现#include <bits/stdc++.h>#define maxn 100001using namespace std;int e[101][101]; bool book[101];int dis[101];int n,m,inf=65535;void init(){ for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j) e[i][j]=0;

2021-03-20 17:53:34 245

原创 二叉排序树的基本操作

二叉排序树的基本操作1.插入概述:总体采用递归的思路,先从根节点递归遍历,比较要插入的值和当前结点的值,当值相等时不执行插入操作,小于当前结点的值则访问该结点的左子树,大于则访问右子树,直至访问到某系当前结点左孩子或右孩子为空时,用要插入的值创建新的结点并连接到该树中。具体实现:bool BSTinsert(BiTree &T,int k){//二叉排序树的插入,插入成功返回true,否则返回false if(T==NULL){//当树为空时创建新的结点插入树中 T=new Bi

2021-02-28 22:36:46 332

原创 DFS简单实现

DFS简单实现#include <bits/stdc++.h>#define INIT ios::sync_with_stdio(false)using namespace std;int book[100],flag,n;vector<int> mmap[100];//vector数组实现邻接表 bool DFS(int v){ if(v==flag)//v为终点 return true; if(book[v]==1)//v为标记过的点 return f

2021-02-19 16:04:12 304

原创 动态规划经典题

最长上升子序列//最长上升子序列 #include <bits/stdc++.h>#define INIT ios::sync_with_stdio(false)using namespace std;int a[1000],maxlen[1000]; int main() { INIT; int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; maxlen[i]=1; } for(int i

2021-02-17 19:49:48 95

原创 并查集

并查集#include <bits/stdc++.h>#define INIT ios::sync_with_stdio(false)using namespace std;int f[1001]={0},n,m,sum=0;void init(){ for(int i=1;i<=n;i++) f[i]=i; return;}int getf(int v){ if(f[v]==v) return v; else{ f[v]=getf(f[v]); re

2021-02-17 17:26:07 96

原创 堆排序

堆排序#include <bits/stdc++.h>using namespace std;int a[101];int n;void siftdown(int i){ int t,flag=0; while(i*2<=n&&flag==0){ if(a[i]<a[i*2]) t=i*2; else t=i; if(i*2+1<=n){ if(a[t]<a[i*2+1]) t=2*i+1; }

2021-02-17 16:04:47 90

原创 C/C++递归建立二叉树及遍历

C/C++递归建立二叉树及遍历#include <bits/stdc++.h>using namespace std;typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;bool CreateBiTree(BiTree &T){ int n; cin>>n; if(n==0) T=NULL; else { if(!(T=new B

2021-02-05 20:48:31 392

原创 表达式求值

表达式求值#include <bits/stdc++.h>using namespace std;int factor_value();int term_value();int expression_value();int main() { cout<<expression_value()<<endl; return 0;}int factor_value()//计算因子的值 { int result =0; char c=cin.peek()

2021-02-01 16:45:50 139

原创 线性表—链式存储基本操作

链式存储定义及基本操作定义形式typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;初始化Status InitList(LinkList L){ L=(LinkList)malloc(sizeof(LNode)); if(!L) return ERROR; L->next=NULL; return OK;}销毁单链表Status DestroyList(LinkList

2020-06-28 16:13:52 880

原创 线性表—顺序存储基本操作

顺序存储定义及基本操作定义形式typedef struct{ ElemType *elem; //存储空间的基地址 int length; //表的当前长度}SqList;初始化Status InitList(SqList *L){ L->elem=(ElemType *)malloc(MAX*sizeof(ElemType)); if(!L->elem) return ERROR; L->length=0; return OK;}获取元素

2020-06-28 15:44:01 5423

原创 排序算法汇总

排序算法汇总选择排序①可视化过程②算法思想③代码实现④算法复杂度分析冒泡排序①可视化过程②算法思想③代码实现④算法复杂度分析插入排序①可视化过程②算法思想③代码实现void InsertSort(int *ary,int n){ int i,j; for(i=2;i<=n;i++) { if(ary[i]<ary[i-1]) { ary[0]=ary[i]; for(j=i-1;ary[j]>ary[0];j--) a

2020-06-27 15:56:06 125

原创 二叉树的非递归遍历算法

二叉树的非递归遍历1.前序遍历遍历顺序:根节点→左孩子→右孩子;具体算法思想:将二叉树的根结点赋值给遍历的指针,若当前节点存在,则输出当前节点的相关数据并做入栈操作(将该节点的地址存入栈中),继而访问其左孩子;执行如上操作,直到当前节点为空,做出栈操作并访问其右孩子,再重复如上操作,直至当前节点不存在且栈为空;具体遍历过程如图:算法代码实现如下:void preorder( BinTree t){ Stack S; InitStack(S); BinTree temp = t;//定义

2020-06-01 15:30:46 7474 2

空空如也

空空如也

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

TA关注的人

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