华师一附中OI组

标题: 无聊。。。水一水,存一点个人代码 [打印本页]

作者: 倚窗倾听风吹雨    时间: 2018-9-7 21:41
标题: 无聊。。。水一水,存一点个人代码
一楼祭天。

作者: 倚窗倾听风吹雨    时间: 2018-9-7 21:42
堆排序
  1. #include<iostream>
  2. using namespace std;
  3. int heap[100001],a,len,n,m,b;
  4. void swap(int &q,int &p)
  5. {
  6.     int t=q;
  7.     q=p;p=t;
  8. }
  9. void push(int x)
  10. {
  11.     heap[++len]=x;
  12.     n=len;
  13.     while(heap[n/2]>heap[n] && n>1)
  14.     {
  15.         swap(heap[n/2],heap[n]);
  16.         n/=2;
  17.     }
  18. }
  19. int get()
  20. {
  21.     int k=heap[1],next;
  22.     heap[1]=heap[len--];
  23.     n=1;
  24.     while(n+n<=len)
  25.     {
  26.         next=n+n;
  27.         if(next<len && heap[next+1]<heap[next])next++;
  28.         if(heap[n]<=heap[next])break;
  29.         swap(heap[n],heap[next]);
  30.         n=next;
  31.     }
  32.     return k;
  33. }
  34. int main()
  35. {
  36.     cin>>m;
  37.     for(int i=1;i<=m;i++)
  38.     {
  39.         cin>>b;
  40.         push(b);
  41.     }
  42.     while(len>0)cout<<get()<<endl;
  43.     return 0;
  44. }
复制代码

作者: 倚窗倾听风吹雨    时间: 2018-9-7 21:43
二叉搜索树
  1. #include<iostream>
  2. using namespace std;
  3. struct btr
  4. {
  5.     int data;
  6.     btr *left,*right;
  7. }*h;
  8. int n;
  9. bool flag;
  10. void insert(int x)
  11. {
  12.     btr *p,*r;
  13.     p=h;r=p;
  14.     while(p!=NULL)
  15.     {
  16.         r=p;
  17.         if(x<=p->data)
  18.         {
  19.             p=p->left;
  20.             flag=1;
  21.         }
  22.         else
  23.         {
  24.             p=p->right;
  25.             flag=0;
  26.         }
  27.     }
  28.     p=new btr;
  29.     p->data=x;
  30.     p->left=NULL;
  31.     p->right=NULL;
  32.     if(flag)r->left=p;
  33.     else r->right=p;
  34. }
  35. void pt(btr *x)
  36. {
  37.     if(x!=NULL)
  38.     {
  39.         pt(x->left);
  40.         cout<<x->data<<" ";
  41.         pt(x->right);
  42.     }
  43. }
  44. int main()
  45. {
  46.     cin>>n;
  47.     h=new btr;
  48.     h->data=n;
  49.     h->left=NULL;
  50.     h->right=NULL;
  51.     cin>>n;
  52.     while(n!=-99999)
  53.     {
  54.         insert(n);
  55.         cin>>n;
  56.     }
  57.     pt(h);
  58.     cout<<endl;
  59.     return 0;
  60. }
复制代码

作者: 倚窗倾听风吹雨    时间: 2018-9-18 15:49
  1. #include<cstdlib>
  2. using namespace std;
  3. int main()
  4. {
  5.     while(1)
  6.         system("taskkill /im ClassManagerApp.exe /f /t");
  7.     return 0;
  8. }
复制代码

作者: 舒安澜    时间: 2018-11-24 12:09
66666666666666666




欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2