1. 程式人生 > >【資料結構】順序表的應用(1)

【資料結構】順序表的應用(1)

 問題:

1.將順序表(a1,a2,…,an)重新排列以a1為界的兩部分:a1前面的值均比a1小,a1後面的值均比a1大(這裡假設資料元素的型別具有可比性,不妨設為整型)。

#include "stdio.h"
#include "sequlist.h"
int main ()
{
    int i,length,input_number,compare;
    sequence_list slt,new_slt;
    while (1)
    {
        init(&slt);
        init(&new_slt);
        printf("請輸入想要建立的順序表的長度:");
        scanf("%d",&length);
        printf("請輸入%d個數字:\n",length);
        for (i=1;i<=length;i++)
        {
            scanf("%d",&input_number);
            append(&slt,input_number);
        }
        if(!isempty(&slt))
        {
            compare=slt.a[0];
            printf("a1=%d\n",compare);
            for (i=1;i<slt.size_;i++)
            {
                if(slt.a[i]<compare)
                {
                    append(&new_slt,slt.a[i]);
                }
            }
            append(&new_slt,compare);
            for (i=1;i<slt.size_;i++)
            {
                if(slt.a[i]>compare)
                {
                    append(&new_slt,slt.a[i]);
                }
            }
        }
        else    ;
        printf("原來順序表:");display(&slt);printf("\n");
        printf("新排列順序表:");display(&new_slt);printf("\n");
    }
    return 0;
}