- 博客(11)
- 收藏
- 关注
原创 【无标题】
https://blog.youkuaiyun.com/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
415
1
原创 线索二叉树
通过对二叉树的约定遍历方式 可以得到一个固定的遍历方式存放前驱和后继的空间每隔一个结点都有浪费空间 所以我们就将它利用存前驱和后继yes 中序遍历具备这样的特点将已经定义好的结构进行扩容ltag 与 rtagltag=0 指向左孩子 =1 指向前驱...
2020-10-21 23:37:57
244
原创 二叉树遍历非递归
前序遍历先结点再左右子树使用栈的方式输出结点(中) 压入栈中左子树右子树遇到非空结点不停的压栈 若遇到空结点 指针指向栈顶元素的右结点 则栈顶元素弹出 继续利用了栈先进后出的特点 每一次遇到空结点 我们首先要向上找它的父结点就是栈顶//前序遍历非递归 void PreOderN(btlink T){ stack<btlink>st; while(T!=NULL||!st.empty())//循环结束条件 结点不为空 栈不为空 { if(T!=NULL
2020-10-18 11:11:24
147
原创 二叉树的遍历(递归)
//以二叉树结点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
117
原创 二叉树的建立(指针)
二叉树的建立建立结点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
1117
原创 快速排序的优化
优化选取基准点优化基准点 使其不达到极端状态 或者说 使其用基准点划分想对平衡找下标最左边 中间 以及最右边的值 取三者的中间值作为基准点 这称为三数取中 只需要改变 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
98
原创 快速排序
快速排序第一步先进行划分 选取基数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
98
原创 归并排序(递归与迭代)
归并排序采用分而治之的思想 采用递归 分成小部分 (对半分) 治:将正确答案对在一起图片网上找的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
223
原创 算法与数据结构实验题 3.9 文档
算法与数据结构实验题 3.9 文档题解撤销:撤销最近的一次的恢复和输入恢复:恢复最近一次的撤销 但输入之前的撤销不可以输入建立栈word 输入和恢复//用数组建立的原因是要输出建立栈del被撤销的输入在这里...
2020-10-08 18:12:09
367
原创 c++栈
c++栈库t头文件#include使用方法:stackstackname;如 stacks;s.empty();//如果栈为空则返回true;s.size();//栈中元素个数s.top();//返回栈顶元素但不删除s.pop();//弹出栈顶元素但不返回值s.push();//将元素压入栈顶...
2020-10-08 16:16:59
146
原创 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
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人