데이터 구조 실험 5 - 재 귀

9386 단어 데이터 구조
/*
        int max(int a[],int left, int right),   a[left..right]     。
*/

#include "ArrayIo.h"
/*         ,     */
int max(int a[],int left,int right)
{
    int mid,lmax,rmax;
    if(left==right)
        return a[left];
    else
    {
        mid=(left+right)/2;
        lmax=max(a,left,mid);
        rmax=max(a,mid+1,right);
        return lmax>rmax?lmax:rmax;
    }
}
int main()
{   int a[10];
    input(a,10);
    print(a,10);
    printf("       :%d
"
,max(a,0,9)); return 0; }
/*
           void partion(int a[], int left, int right),
   a[left..right]             ,           。
*/
#include "ArrayIo.h"
#define N 10
/*         ,     */
void partion(int a[], int left,int right)
{
    int temp;
    while(leftwhile(left%2==1)  //     
            left++;
        while(left%2==0) //     
            right--;
        if(left//    
        {
            temp=a[left];
            a[left]=a[right];
            a[right]=temp;

            partion(a,left+1,right-1);
        }
    }
}
int main()
{   int a[N];
    init(a,N);                /*    N  */
    print(a,N);
    partion(a,0,N-1);
    print(a,N);
    return 0;
}
/*
         void bubbleSort(int a[],int n),
      n              。
         int binSearch(int a[], int left, int right,int key),
            a[left..right]     key        ,
           -1。
  */

#include "ArrayIo.h"
#define N 10
/*         ,     */
void bubbleSort(int a[],int n)
{
    int i,temp,flag;
    if(n>1)
    {
        flag=0;
        for(i=0;i1;i++)
        {
            if(a[i]>a[i+1])
            {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
                flag=1;
            }
        }
        bubbleSort(a,n-1);
    }
}
int binSearch(int a[], int left,int right,int key)
{
    int mid;
    if(left>right)
        return -1;
    else
    {
        mid=(left+right)/2;
        if(a[mid]==key)
            return mid;
        else if(a[mid]>key)
            binSearch(a,left,mid-1,key);
        else
            binSearch(a,mid+1,right,key);
    }
}
int main()
{   int x,pos,a[N];
    init(a,N);
       bubbleSort(a,N);
    print(a,N);
    printf("        :
"
); scanf("%d",&x); pos=binSearch(a,0,N-1,x); if (pos!=-1) printf("a[%d]=%d
"
,pos,x); else printf("Not found!
"
); return 0; }
/*
                 3,              ,
         linklist max(linklist head),              ,     ,  NULL。
*/


#include "slnklist.h"
/*         ,     */
linklist max(linklist head)
{
    linklist p,q;
    if(!head->next)
        return NULL;
    else
        if(!head->next->next)
        return head->next;
    else
    {
        p=max(head->next);
        if(head->next->info > p->info)
            return head->next;
        return p;
    }
}
int main()
{   linklist head,p;
    head=creatbyqueue();
    print(head);
    p=max(head);
    if (p)
        printf("max=%d
"
,p->info); else printf("
"
); return 0; }

본문 주소:http://liuyanzhao.com/3590.html
전재 하 다

좋은 웹페이지 즐겨찾기