/**********************************************************************************
*******题目1: ***
*******设线性表存放在向量A[arrsize]的前elenum个分量中,且递增有序。 ***
*******试设计一算法,将x插入到线性表的适当位置上,以保持线性表的有序性。 ***
***********************************************************************************/
#include "iostream"
using namespace std;
#define maxsize 1024
typedef int datatype;
typedef struct node
{
datatype data[maxsize];
int last;
}sequenlist;
void insert(sequenlist *A,int x)
{
int i;
if ((*A).last>=maxsize-1)
{
cout<<"表空间上溢"<<endl;
}
i = (*A).last;
while((*A).data[i]>x)
{
(*A).data[i+1] = (*A).data[i];
i--;
}
(*A).data[i+1] = x;
(*A).last = (*A).last+1;
}
sequenlist * creat_sequenlist(void)
{
int t,i=0;
sequenlist *L;
L=(sequenlist*)malloc(sizeof(sequenlist));
(*L).last = 0;
cin>>t;
while (t!=-1)
{
(*L).data[i] = t;
i++;
cin>>t;
}
(*L).last = i-1;
return L;
}
void print_sequenlist(sequenlist *L)
{
int i=0;
for (i=0;i<=(*L).last;i++)
{
cout<<(*L).data[i]<<'\t';
}
cout<<"last="<<(*L).last<<endl;
cout<<endl;
}
void main(void)
{
sequenlist *head;
head = creat_sequenlist();
print_sequenlist(head);
insert(head,3);
print_sequenlist(head);
}