• 青岛数据结构实训时 写的 一些代码


    插入排序

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 #define MAXL 10000
     6 
     7 void InsertSort(int a[],int n)
     8 {
     9     int i,j,temp;
    10     for(i=0; i<n; i++)
    11     {
    12       temp=a[i];
    13       j=i-1;
    14       while(j>=0&&temp<a[j])
    15       {
    16         a[j+1]=a[j];
    17         j--;
    18       }
    19       a[j+1]=temp;
    20     }
    21     for(i=0; i<n; i++)
    22     cout<<a[i]<<" "; 
    23     cout<<endl;
    24 }
    25 int main()
    26 {
    27      int n,i,a[MAXL];
    28      cin>>n;
    29      for(i=0; i<n; i++)
    30          cin>>a[i];
    31      InsertSort(a,n);
    32     return 0;
    33 }

    冒泡排序

     1 //冒泡排序
     2 #include <iostream>
     3 #include <cstring>
     4 #include <algorithm>
     5 using namespace std;
     6 #define MAXL 10000
     7 
     8 int BubbleSort(int a[],int n)
     9 {
    10     int i,j,t;
    11     for(i=0; i<=n-2; i++)
    12         for(j=0; j<=n-i-2; j++)
    13             if(a[j+1]<a[j])
    14             {
    15                 t=a[j]; a[j]=a[j+1]; a[j+1]=t;
    16             }
    17             
    18             for(i=0; i<n; i++)
    19                 cout<<a[i]<<" ";
    20             cout<<endl;
    21             return 0;
    22 }
    23 int main()
    24 {
    25      int i,n,a[MAXL];
    26      cin>>n;
    27     for(i=0; i<n; i++)
    28         cin>>a[i];
    29     BubbleSort(a,n);
    30     return 0;
    31 }

    选择排序

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 #define MAXL 10000
     6 
     7 int a[MAXL];
     8 void SelectSort(int a[],int n)
     9 {
    10    int i,j,k,x;
    11    for(i=1; i<n; i++)
    12    {
    13      k=i-1;
    14      for(j=i; j<n; j++)
    15      {
    16        if(a[j]<a[k])
    17            k=j;
    18      }
    19      x=a[i-1];
    20      a[i-1]=a[k];
    21      a[k]=x;
    22    }
    23 }
    24 
    25 int main()
    26 {
    27     int n,i;
    28     cin>>n;
    29     for(i=0; i<n; i++)
    30     {
    31       cin>>a[i];
    32     }
    33     SelectSort(a,n);
    34     for(i=0; i<n; i++)
    35        cout<<a[i]<<" ";
    36    cout<<endl;
    37     return 0;
    38 }

    练习1

     1 #include <stdio.h>
     2 #include <string.h>
     3 #define MAXSIZE 10000
     4 typedef struct node
     5 {
     6     int elem[MAXSIZE];
     7     int last;
     8 }Sqlist;
     9 Sqlist list;
    10 
    11 void show(Sqlist * Last)
    12 {
    13     int i;
    14    for(i=0; i<(*Last).last; i++)
    15    printf("%d ",(*Last).elem[i]);
    16    printf("
    ");
    17 }
    18 
    19 int Sinsert(Sqlist &Last,int e,int loc)
    20 {
    21     int i;
    22     if(loc<0||loc>=MAXSIZE)
    23     return 0;
    24     else
    25     {
    26      for(i=Last.last-1; i>=loc; i--)
    27      Last.elem[i+1]=Last.elem[i];
    28      Last.elem[loc]=e;
    29      Last.last++;
    30      return 1;
    31     }
    32 }
    33 
    34 int del(Sqlist &Last,int loc,int e)
    35 {
    36 
    37    int i;
    38    if(loc<0||loc>=MAXSIZE)
    39        return 0;
    40    else
    41    {
    42      e=Last.elem[loc];
    43      for(i=loc; i<Last.last-1; i++)
    44      Last.elem[i]=Last.elem[i+1];
    45      Last.last--;
    46      return 1;
    47    }
    48 }
    49 
    50 int main()
    51 {
    52   int i;
    53   int e,x;
    54   scanf("%d",&list.last);
    55   for(i=0; i<list.last; i++)
    56   scanf("%d",&list.elem[i]);
    57   scanf("%d%d",&e,&x);
    58   Sinsert(list,e,x);
    59   scanf("%d",&x);
    60   del(list,x,e);
    61   show(&list);
    62   return 0;
    63 }

    练习2

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 #define MAXL 10000
     6 
     7 typedef struct node
     8 {
     9    char key;
    10    int data;
    11 }Nodetype;
    12 typedef Nodetype Sqlist[MAXL];    
    13 
    14 int Seqsearch(Sqlist R,int n,char k)
    15 {
    16    int i=0;
    17    while(i<n&&R[i].key!=k) ++i;
    18    if(i>=n)
    19    return -1;
    20    else
    21    return R[i].data;
    22 }
    23 int main()
    24 {
    25     Sqlist R;
    26     int i,n,f;
    27     char k;
    28     cin>>n;
    29     cin>>k;
    30     for(i=0; i<n; i++)
    31     cin>>R[i].key>>R[i].data;
    32     f=Seqsearch(R,n,k);
    33     if(f==1)
    34     cout<<f<<endl;
    35     else
    36     cout<<"NO!"<<endl;
    37     return 0;
    38 }

    作业1

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 typedef struct node
     7 {
     8     int data;
     9     struct node *next;
    10 }Sqlist;
    11 
    12 Sqlist *creat(int n)
    13 {
    14     int i;
    15     Sqlist *head,*tail,*p;
    16     head = new Sqlist;
    17     head->next=NULL;
    18     tail=head;
    19     
    20     for(i=0; i<n; i++)
    21     {
    22       p=new Sqlist;
    23       cin>>p->data;
    24       p->next=NULL;
    25       tail->next=p;
    26       tail=p;
    27     }
    28     return head;
    29 }
    30 
    31 int locate(Sqlist *List, int loc)
    32 {
    33     int sum=0;
    34     Sqlist *p;
    35     p=List;
    36     while(p->next!=NULL)
    37     {
    38       sum++;
    39       if(sum==loc)
    40       return p->next->data;
    41       p=p->next;
    42     }
    43     return -1;
    44 }
    45 int main()
    46 {
    47     int n,loc;
    48     Sqlist *head;
    49     cin>>n;
    50     head=creat(n);
    51     cin>>loc;
    52     cout<<locate(head,loc)<<endl;
    53     /*r=head;
    54     while(r->next!=NULL)
    55     {
    56       cout<<r->next->data<<" ";
    57       r=r->next;
    58     }
    59     cout<<endl;*/
    60     return 0;
    61 }

    作业2

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 #define MAXL 10000
     5 int a[MAXL],n;
     6 
     7 void QSort(int low,int high)
     8 {
     9     if(low<high)
    10     {
    11         int x,l,h;
    12         l=low,h=high;
    13         x=a[low];
    14         while(low<high)
    15         {
    16             while(low<high&&a[high]>=x)  --high;
    17             a[low]=a[high];
    18             while(low<high&&a[low]<=x) ++low;
    19             a[high]=a[low];
    20         }
    21         a[low]=x;
    22         QSort(l,low-1);
    23         QSort(low+1,h);
    24     }
    25 }
    26 
    27 void show()
    28 {
    29    int i;
    30    for(i=0; i<n; i++)
    31    {
    32        if(i!=n-1)
    33        printf("%d ",a[i]);
    34        else
    35        printf("%d
    ",a[i]);
    36    }
    37 }
    38 int main()
    39 {
    40    printf("请在运行前在D盘建一个文件名为data,
    属性为txt的文本文档,并在里面输入一些整型数据!
    
    ");
    41    system("pause");
    42    FILE *fp;
    43    int i;
    44    n=-1;
    45    fp=fopen("D:\data.txt","rt");
    46    while(~fscanf(fp,"%d",&a[++n]))
    47    {}
    48    fclose(fp);
    49    printf("排序前的顺序为:
    ");
    50    show();
    51    QSort(0,n-1);
    52    printf("排序后的顺序为:
    ");
    53    show();
    54    fp=fopen("D:\data.txt","at+");
    55    fprintf(fp,"排序后的顺序为:
    ");
    56    for(i=0; i<n; i++)
    57    {
    58        if(i!=n-1)
    59        fprintf(fp,"%d ",a[i]);
    60        else
    61        fprintf(fp,"%d
    ",a[i]);
    62    }
    63    fclose(fp);
    64    return 0;
    65 }
  • 相关阅读:
    洛谷 P1941 飞扬的小鸟
    洛谷P2464 [SDOJ2008]郁闷的小J
    [cogs2314][HZOI 2015] Persistable Editor
    [vijos1067]Warcraft III 守望者的烦恼
    【vijos1049】送给圣诞夜的礼品
    [cogs347]地震
    gcc 编译多个源文件
    2_兔子产仔问题
    1_鸡兔同笼问题
    LeetCode(61) Rotate List
  • 原文地址:https://www.cnblogs.com/bfshm/p/3524529.html
Copyright © 2020-2023  润新知