这两天弄工程东西去了,,,忘更了。。。刚想起来
目录
- 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];
- }
-
相关阅读:
m4s转mp3——B站缓存视频提取音频
Java八股文纯享版——篇②:并发编程
Go Web——简单blog项目(一)
CAS:474922-22-0,DSPE-PEG-MAL,磷脂-聚乙二醇-马来酰亚胺科研试剂供应
Spring循环依赖和三级缓存详解
2022 Java生态系统报告:Java 11超Java 8、Oracle在缩水、Amazon在崛起
GeoJSON转STL:地形3D打印
知识蒸馏基本原理
基于图搜索的规划算法之 A* 家族(八):Theta* 算法
linux中mkdir -p用法
-
原文地址:https://blog.csdn.net/m0_61735576/article/details/128153311