1. 程式人生 > >資料結構 2-11設順序表va中的資料元素遞增有序。試寫一演算法,將x插入到順序表的適當位置上,以保持該表的有序性。

資料結構 2-11設順序表va中的資料元素遞增有序。試寫一演算法,將x插入到順序表的適當位置上,以保持該表的有序性。

將近半年時間內一直沒有寫部落格了,最近一直研究資料結構。該是整理一下的時候了。採用的是嚴蔚敏的習題集。

2.11設順序表va中的資料元素遞增有序。試寫一演算法,將x插入到順序表的適當位置上,以保持該表的有序性。

演算法思想:

1

3

4

5

6

7

8

9

假如插入的是2則,需要將所有比2大的數進行後移,直到不比2大為止。

即:

1

2

3

4

5

6

7

8

9

演算法如下:

Sqlist.cpp

#include "Sqlist.h"

Sqlist::Sqlist(void)

{

}

int Sqlist::coutSql(int a[]){//輸出陣列中的資料

for (int i=0;i<6;i++)

{

cout<<a[i]<<"\n";

}

return 0;

}

int Sqlist::insertSql(int a[])

{//向陣列插入資料

int x,i,j;

cout<<"請輸入一個數據:";

cin>>x;

//查詢插入位置

for(i=0;i<7;i++){

if(a[i+1]>x){

break;

}

}

//移動資料

for(j=7;j>i;j--){

a[i+1]=a[i];

}

//插入

a[i+1]=x;

return 0;

}

Sqlist::~Sqlist(void)

{

}

Sqlist.h

#pragma once

#include "iostream"

using namespace std;

class Sqlist

{

private:

int length;

public:

Sqlist(void);

int coutSql(int a[]);

int insertSql(int a[]);

~Sqlist(void);

};

2-11.cpp

#include"Sqlist.h"

#include"iostream"

using namespace std;

int main()

{

int a[7]={1,2,4,6,7,8,9};

Sqlist sqllist;

cout<<"陣列中的資料為:"<<endl;

sqllist.coutSql(a);

sqllist.insertSql(a);

sqllist.coutSql(a);

system("pause");

return 0;

}