- 博客(28)
- 资源 (21)
- 论坛 (3)
- 收藏
- 关注
原创 判断一棵树是否为二叉排序树
怎么样判断一棵树是否为二叉排序树int justBT(BTNode *p,BTNode *pre){ int p1,p2; if(p==NULL) return 1; else { p1=justBT(p->lchild,pre); if(p1==0||pre->data>p->data) return 0; pre=p; p2=...
2018-12-27 08:08:40
1476
原创 排序的总结
//1.直接插入排序void InsertSort(int R[],int n){ int i,j;int temp; for(i=1;i<n;i++) { temp=R[i]; j=i-1; while(j>=0&&temp<R[j]) { R[j+1]=R[j]; j--; } R[j+1]=temp; }}...
2018-12-27 08:08:31
100
原创 图的应用之拓扑排序
图的拓扑排序可用来判断有向图是否存在回路、环//修改图的结点typedef struct{ char data; int count; EdgeNode *firstEdge;}VertexNode;//统计一个结点的入度数 void count(AGraph *g,int k) { EdgeNode *p; int i,j; for(i=0;i<g->...
2018-12-27 08:08:25
286
原创 图的基础知识、图的结构体定义以及遍历方式
1.图的基础知识图:由顶点的有穷非空集和顶点之间的边的集合组成。通常为G(V,E)有向图:每条边都有方向 无向图:每条边都没有方向有向完全图:若有向图有n个顶点,且具有n(n-1)个边 无向完全图:若无向图有n个顶点,且具有(n(n-1)/2)简单路径:序列中顶点不重复出现的路径成为简单路径 回路:若一条路径中第一个顶点和最后一个顶点相同,则这条路径是一条回路连通图:...
2018-12-27 08:08:18
828
原创 树与二叉树的应用之判断一棵树是否为完全二叉树
一棵二叉树采用二叉链表存储结构,试判断该二叉树是否为完全二叉树(这里采用层次遍历的方法)int isCompleteBinaryTree(BTNode *p){ BTNode *queue[maxsize];BTNode *p; int front=0,rear=0; int flag=0; if(p==NULL) return 1; else{ rear=(rear+1...
2018-12-27 08:08:12
670
原创 树与二叉树的应用之统计层号、输出路径、判断相似、左右子树交换
1.二叉树采用二叉链表存储结构,现求二叉树中值为x的层号(回溯法)int L=1;void leno(BTNode *p,int x){ if(p!=NULL) { if(p->data==x) { cout<<L<<endl; return; } L++; leno(p->lchild,x); leno(p-&...
2018-12-27 08:08:06
187
原创 树与二叉树应用之统计结点数以及将叶子结点串联成单链表
1.二叉树采用二叉链表存储结构,统计所有结点数目int n=0;void count(BTNode *p){ if(p!=NULL) { n++; count(p->lchild); count(p->rchild); }}2.二叉树采用二叉链表存储结构,统计所有叶子结点数组int n=0;void count(BTNode *p){ if...
2018-12-27 08:07:59
417
原创 二叉树应用之线索化
线索二叉树 对二叉树以某种次序遍历使其变化线索二叉树的过程称作线索化。typedef struct TBTNode{ char data; int ltag,rtag;//ltag=0,则lchild指向左孩子 ltag=1,则lchild指向直接前驱 同理rtag struct TBTNode *lchild; struct TBTNode *rchild;}...
2018-12-27 08:07:45
296
原创 二叉树的应用之根据序列确定二叉树
1.根据先序和中序序列确定一棵二叉树设计思想:先序遍历中第一个元素,即为树的根结点值A,在中序遍历中找到A,由A将中序遍历序列分为两个子序列,左序列构成左子树,右序列构成右子树BTNode *createBT(char pre[],char in[],int l1,int r1,int l2,int r2){ if(L1>R1) return NULL; BTNode *...
2018-12-27 08:07:37
199
原创 二叉树应用之遍历算法的改进
1.对前序遍历算法的改进 非递归算法void preOrder(BTNode *p){ BTNode *stack[maxsize]; int top=-1; BTNode *q; if(p!=NULL) { stack[++top]=p; while(top!=-1) { q=stack[top--]; cout<<p->data<...
2018-12-26 11:28:40
269
原创 树与二叉树之层次遍历、求二叉树宽度
1.层次遍历算法思想:建立一个循环队列,先将二叉树头结点如队列,然后出队列,访问该结点,若该结点有左子树则左结点队列,如果有右子树入队列,然后出队访问,直到为空void level(BTNode *p){ BTNode *queue[maxsize]; int front=0,rear=0; BTNode *q; if(p!=NULL) { rear=(rear+1)%m...
2018-12-26 11:19:12
1741
原创 树与二叉树之计算表达式的值、求二叉树的深度,查找结点值
1.计算表达式的值设计思想:先求左子树表达式的值,再求右子树的值,最后相乘int comp(BTNode *p){ int A,B; if(p!=NULL) { if(p->lchild!=NULL&&p->rchild!=NULL) { A=comp(p->lchild); B=comp(p->rchild); ...
2018-12-26 09:47:17
336
1
原创 树与二叉树之生成一棵二叉树
typedef struct BTNode{ struct BTNode *lchild; struct BTNode *rchild; char data;}BTNode;#include<iostream>using namespace std;void createBTree(BTNode &T){ char c; cin>>c; i...
2018-12-26 09:38:36
268
原创 树与二叉树之二叉树结点的遍历
//链式存储结构的二叉链表结构体定义typedef struct BTNode{ char data; struct BTNode *lchild; struct BTNode *rchild;}BTNode;//先序遍历void preorder(BTNode *p){ if(p!=NULL) { cout<<p->data; preorder(...
2018-12-26 09:32:01
154
原创 树与二叉树之基础知识篇
1.树的存储结构 有顺序存储结构(双亲存储结构)和链式存储结构(孩子存储结构、孩子兄弟存储结构)2.二叉树、完全二叉树、满二叉树、二叉排序树、平衡二叉树、B-树二叉树:在一般的树上加两个限制条件:a.二叉树中结点的度只能为0,1,2 b.子树中有左右顺序之分,不能颠倒满二叉树:如果在一棵树中,所有分支结点都有左孩子和右孩子结点,并且叶子结点都集中在二叉树的最下层,则称之为满...
2018-12-26 09:25:22
160
原创 栈的应用之两个栈模拟一个队列
利用两个栈s1,s2模拟一个队列,已知栈的三个运算定义如下:push(ST,x):元素x入st栈pop(ST,&x):st栈顶元素出栈,赋给变量xisEmpty(ST):判断ST栈是否为空//入队列 int enQueue(SqStack &s1,SqStack &s2,int x){ int y; if(s1.top==maxsize-1) {...
2018-12-26 09:12:57
287
原创 栈的应用之设计共享栈
//共享栈的结构体定义typedef struct{ int elem[maxsize]; int top[2];//top[0]为s0栈顶 top[1]为s1栈顶 }SqStack;//入栈int push(SqStack &st,int stNo,int x){ if(st.top[0]+1<st.top[1]) { if(stNo==0) { ...
2018-12-26 09:00:16
359
原创 栈的表达式之计算中缀、前缀和后缀表达式
1.计算中缀表达式//判断运算符优先级int getPriority(char op){ if(op=='+'||op=='-') return 0; else return 1;} //计算表达式int calsub(float opnd1,char op,float opnd2,float &result){ if(op=='+') result=...
2018-12-26 08:53:37
442
原创 栈的应用之表达式转换
1.中缀表达式转后缀表达式void infixToPostFix(char exp[],char s2[],int &top2){ char s1[maxsize];int top1=-1; int i=0; while(exp[i]!='\0') { if(exp[i]>='0'&&exp[i]<='9') { s2[++top2...
2018-12-26 08:33:20
197
原创 约瑟夫环的两种实现方式--数组和循环链表
1.数组实现形式#include<iostream>#define LEN 40#define Interval 3int main(){ int R[LEN]; for(int i=0;i<LEN;i++) R[i]=1;//数组初始化 1:活着 0:自杀 int lefcount=LEN;//剩下的人数 int index=0,count=0;;/...
2018-12-25 20:31:29
265
原创 回溯法之八皇后问题
八皇后问题:要求在一个8*8的棋盘上放8个皇后,使得它们不互相攻击,一个皇后可以攻击处在同一行或同一列或同一斜线。解的形式:x[1:n]表示皇后i放在i行的x[i]列剪枝条件:x[i]=x[j] |j-i|=x[j]-x[i]int nocollison(int k){ int j=1; while(j<k) { if(x[j]==x[k]||(abs(x[j]-...
2018-12-25 20:07:50
249
原创 回溯法之全排列和组合问题
1.全排列问题:输入n个不同的字符串,给出它们所有的n个字符全排列void perm(char str[],int d,int n){ int i; char temp; if(d==n-1) { for(i=0;i<d;i++) cout<<str[i]<<" "; cout<<endl; } for(i=d;i<...
2018-12-25 18:20:29
824
原创 回溯法关于图
图的结构体定义typedef struct { int adjvex; EdgeNode *next;}EdgeNode;typedef struct{ int data; EdgeNode *firstEdge;}Vertex;typedef struct { Vertex adjList[maxsize]; int n,e;}AGraph;1.假设图G...
2018-12-25 18:15:06
422
3
原创 回溯法之关于树
1.二叉链表的存储方式,求二叉树中值为x的层号int L=1;void leno(BTNode *p,int x){ if(p!=NULL) { if(p->data==x) { cout<<L<<endl; break; } L++; leno(p->lchild,x); leno(p->rchild,x...
2018-12-25 18:01:04
181
原创 篇章二线性表---常见操作
1.顺序表数组R[],元素0~m+n-1,前m个有序,后n个元素有序递增,使其整体有序void insertSort(int R[],int n){ int i,j,temp; for(i=m;i<=m+n-1;i++) { temp=R[i]; for(j=i-1;j>=0&&temp<R[j];j--) R[j]=R[j+1]; ...
2018-12-25 17:32:07
177
原创 篇章二线性表---基础知识
1.顺序表的结构体定义//顺序表 typedef struct{ int data[maxsize]; int length;}SqList;//单链表typedef struct{ int data; struct LNode *next;}LNode;//双链表typedef struct DLNode{ int data; struct DLNode *...
2018-12-24 15:09:11
165
原创 数据结构----绪论
新世界,新篇章,I'm Coming!!!问题:将R中序列循环左移P个位置,即{x0,x1,x2,,,,xn-1},变换{xp,xp+1,,,,,xn-1,x0,x1,,,xp-1}算法设计思想:先将R中前P个元素逆置,再将剩下元素逆置,最后整体逆置。void Reverse(int R[],int l,int r){ int i,j; int temp; for(i=l,j...
2018-12-24 08:43:02
145
火焰目标检测数据集含标签
2020-12-08
利用html+css+mysql+php来快速的制作动态网页(以制作一个博客网站为列)
2017-08-14
javaweb学生信息管理系统
2018-04-15
SSM实现增删改查操作
2018-06-15
SSM框架环境的搭建及整合
2018-06-08
云笔记项目
2018-05-07
Struts2+Hibernate4开发学生信息管理功能
2018-03-24
gitlab上传的一系列支撑软件
2017-12-28
01html学习笔记的思维导图
2017-09-09
mind_programmonkey的留言板
发表于 2020-01-02 最后回复 2020-03-19
打开不了我的消息页面
发表于 2018-06-11 最后回复 2018-06-11
访问量异常,不更改
发表于 2018-04-24 最后回复 2018-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝