这两天弄工程东西去了,,,忘更了。。。刚想起来
目录
- struct Node
- {
- int val;
- Node *lc,*rc;
- }tr;
- int n;
- void insert(Node *&T,int t){
- if(T==NULL){
- T=new Node();
- T->val=t;
- return ;
- }
- if(T->val>t){
- insert(T->lc,t);
- }
- else {
- insert(T->rc,t);
- }
- return ;
- }
- void order(Node *T,int t){
- for(int i=1;i<=t;i++){
- cout<<" ";
- }
- if(T){
- cout<
val<<'\n'; - }
- else{
- cout<<"#"<<'\n';
- return ;
- }
- if(T->lc||T->rc){
- order(T->lc,t+1);
- order(T->rc,t+1);
- }
- return ;
- }
- signed main(){
- Node* T=NULL;
- cin>>n;
- fer(i,1,n){
- int t;
- cin>>t;
- insert(T,t);
- }
- order(T,0);
- }
楞排序
- const int N = 1e6+10;
- map
int> nums; - map
int> vals; - bool cmp(string &a, string &b) {
- if(nums[a]!=nums[b])
- return nums[a]>nums[b];
- return a
- }
- string name, date;
- signed main() {
- int num, val;
- while(cin>>name>>num>>val>>date){
- val*=num;
- nums[name]+=num;
- vals[name]+=val;
- }
- vector
v; - for(auto t:nums){
- v.pb(t.first);
- }
- sort(v.begin(),v.end(),cmp);
- for(int i=0;i
size();++i){ - cout<
" "<" "<'\n'; - }
- }
问题 C: 二叉排序树-平衡因子
从子树更新上去
- using namespace std;
- struct Node{
- int data;
- Node *l,*r;
- int avl = 0;
- };
- Node* Insert(Node*& t,int e){
- if(t==nullptr){
- t=new Node;
- t->data = e;
- t->l = nullptr;
- t->r = nullptr;
- }
- else{
- if(e
data){ - t->l = Insert(t->l,e);
- }
- else if(e>=t->data){
- t->r = Insert(t->r,e);
- }
- }
- return t;
- }
- int Balance(Node*& T){
- if(!T){
- return 0;
- }
- int l_height = Balance(T->l)+1;
- int r_height = Balance(T->r)+1;
- T->avl = l_height-r_height;
- if(l_height>r_height){
- return l_height;
- }
- else{
- return r_height;
- }
- }
-
- void Previsit(Node* t,string s){
- cout<
data<<"("<avl<<")"<<'\n'; - s+=" ";
- if(t->l == nullptr && t->r != nullptr){
- cout<
"#"<- Previsit(t->r,s);
- }
- if(t->l != nullptr && t->r == nullptr){
- Previsit(t->l,s);
- cout<
"#"<- }
- if(t->l != nullptr && t->r != nullptr){
- Previsit(t->l,s);
- Previsit(t->r,s);
- }
- return ;
- }
- signed main(){
- Node* T;
- int n;
- while(cin>>n){
- T = nullptr;
- string s = "";
- fer(i,0,n-1){
- int v;
- cin>>v;
- Insert(T,v);
- }
- Balance(T);
- Previsit(T,s);
- }
- }
问题 D: 案例 1-1.1 二分查找
- const int N=1e6+10;
- int a[N];
- signed main(){
- int n,x;
- cin>>n;
- fer(i,1,n) cin>>a[i];
- cin>>x;
- int l=1;int r=n;
- while(l
- int mid=(l+r)/2;
- if (a[mid]
- l=mid+1;
- }
- else r=mid;
- }
- if(a[l]==x)cout<
'\n'; - else cout<<-1<<'\n';
- }
问题 E: 进阶实验 1-3.1:两个有序序列的中位数
- const int N = 1e6+10;
- const int mod=998244353;
- int a[N];
- signed main(){
- int n;
- cin>>n;
- n=n*2;
- fer(i,1,n){
- cin>>a[i];
- }
- sort(a+1,a+1+n);
- cout<2];
- }
-
相关阅读:
Mybatis-Plus常用注解
List & Label Professional Reporting Edition 28
AI编码prompt编写及内在逻辑
主板与品牌电脑启动快捷键
直播预约|Flink + StarRocks 实时数据分析新范式
【蓝桥杯选拔赛真题25】python输出指定数据 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
openstack 遇到的error
JAVA算法练习(10):绳圈
迈向无限可能, ATEN宏正领跑设备切换行业革命!
Flutter.源码分析.flutter/packages/flutter/lib/src/widgets/scroll_view.dart/ListView
-
原文地址:https://blog.csdn.net/m0_61735576/article/details/128153311