自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】

https://blog.csdn.net/m0_47256162/article/details/128438944?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167759252216800184149640%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167759252216800184149640&biz_id=0&utm_med

2023-02-28 22:05:17 275 1

原创 线索二叉树

通过对二叉树的约定遍历方式 可以得到一个固定的遍历方式 存放前驱和后继的空间 每隔一个结点都有浪费空间 所以我们就将它利用存前驱和后继 yes 中序遍历具备这样的特点 将已经定义好的结构进行扩容 ltag 与 rtag ltag=0 指向左孩子 =1 指向前驱 ...

2020-10-21 23:37:57 213

原创 二叉树遍历非递归

前序遍历 先结点再左右子树 使用栈的方式 输出结点(中) 压入栈中 左子树 右子树 遇到非空结点不停的压栈 若遇到空结点 指针指向栈顶元素的右结点 则栈顶元素弹出 继续 利用了栈先进后出的特点 每一次遇到空结点 我们首先要向上找它的父结点就是栈顶 //前序遍历非递归 void PreOderN(btlink T) { stack<btlink>st; while(T!=NULL||!st.empty())//循环结束条件 结点不为空 栈不为空 { if(T!=NULL

2020-10-18 11:11:24 111

原创 二叉树的遍历(递归)

//以二叉树结点T作为访问对象 void PreOder(btlink T)//前序 { if(T) { vist(T);//对结点数据的操作 愿意咋地就咋地 PreOder(T->left); PreOder(T->right); } } 中序 void InOder(btlink T) { if(T) { InOder(T->left); vist(T); InOder(T->right); }

2020-10-15 17:23:35 79

原创 二叉树的建立(指针)

二叉树的建立 建立结点 typedef struct btnode *btlink; typedef struct btnode { int data; btlink left; btlink right; }Btnode; 创建结点 btlink NewNode() { btlink m=new btnode;//很重要 开辟btnode大小的空间不是指针 return m; } 创建树 typedef struct Binarytree *btree; typedef struct Bin

2020-10-15 17:18:10 1064

原创 快速排序的优化

优化选取基准点 优化基准点 使其不达到极端状态 或者说 使其用基准点划分想对平衡 找下标最左边 中间 以及最右边的值 取三者的中间值作为基准点 这称为三数取中 只需要改变 get_mid() 函数 int get_mid(int a[],int left,int right) { int mid=left+(right-left)/2; if(a[left]>a[right]) { swap(a[left],a[right]); } if(a[mid]>a[right])

2020-10-11 17:07:46 76

原创 快速排序

快速排序 第一步先进行划分 选取基数pivot 第二步左边快排 第三步右边快排 关键 在于get_mid()也就是基数划分函数、 选取最左边为基数 此后二三步进行递归求解 int get_mid(int a[],int left,int right) { int pivot=a[left]; while(left<right) { while(a[right]>=pivot&&left<right) { right--; } a[left]=

2020-10-11 15:55:21 67

原创 归并排序(递归与迭代)

归并排序 采用分而治之的思想 采用递归 分成小部分 (对半分) 治:将正确答案对在一起 图片网上找的 void mergesort(int a[],int n)==递归分== { if(n>1) { int *list1=a; int list1_size=n/2; int *list2=a+n/2; int list2_size=n-list1_size; mergesort(list1,list1_size);==左半部分== merge

2020-10-11 13:05:03 183

原创 算法与数据结构实验题 3.9 文档

算法与数据结构实验题 3.9 文档 题解 撤销:撤销最近的一次的恢复和输入 恢复:恢复最近一次的撤销 但输入之前的撤销不可以 输入 建立栈word 输入和恢复//用数组建立的原因是要输出 建立栈del被撤销的输入在这里 ...

2020-10-08 18:12:09 146

原创 c++栈

c++栈库 t头文件#include 使用方法: stackstackname; 如 stacks; s.empty();//如果栈为空则返回true; s.size();//栈中元素个数 s.top();//返回栈顶元素但不删除 s.pop();//弹出栈顶元素但不返回值 s.push();//将元素压入栈顶 ...

2020-10-08 16:16:59 111

原创 brachets

问题求解: 求最长括号子序列 思路: 左括号入栈 遇到右括号出栈 借助辅助数组定义一个与字符串长度相同得数组初始化为零 #include<bits/stdc++.h> using namespace std; int flag[100005]; char s[100005]; stack<int>astack; int main() { int len=0;int max=0; int count=0; int n; int i,j; cin>>s; n.

2020-10-08 16:08:20 109

空空如也

空空如也

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

TA关注的人

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