数据结构(C语言版)陈锐主编第2章例题代码

来源:互联网 发布:设备管理器端口不见了 编辑:程序博客网 时间:2024/05/20 13:37

数据结构(C语言版)陈锐主编第2章例题代码下载地址

http://wenku.baidu.com/view/4dd77e685a8102d277a22f09.html

【例2.1】 将顺序表(a1, a2, an)重新排列为以a1为基准的两部分:a1前面的值均比a1小,a1后面的值都比a1大,如图2.5所示。

#include<stdio.h>

typedef int DataType;

#include"SeqList.h"

void Division(SeqList  *L)

{  

    int i,j;

    DataType x,y; 

    x=L->list[0];    /*将基准存放在x*/

    for(i=1;i<=L->last;i++)

        if(L->list[i]<x)  /*如果当前元素小于基准*/

        { 

            y = L->list[i];/*将要移动的元素存放到y*/

            for(j=i-1;j>=0;j--)  /*将前面的元素向后移动一个位置*/

                L->list[j+1]=L->list[j];

            L->list[0]=y;/*将较小的元素存放在最前面*/

        } 

}

void main()

{

    int i;

    DataType a[]={30,40,23,60,8,56,9,43};

    SeqList L;

    InitList(&L);

    for(i=0;i<8;i++)

        InsertList(&L,i+1,a[i]);

    for(i=0;i<=L.last;i++)

    printf("%4d",L.list[i]);

    printf("\n");

    Division(&L);

    for(i=0;i<=L.last;i++)

        printf("%4d",L.list[i]);

    printf("\n");

}


0 0
原创粉丝点击