数据结构:有序顺序表里插入一个数,使得顺序表依然有序。

废话不多说,直接上程序
#include <stdio.h>
#include
#define MaxSize 20
typedef int ElemType;

typedef struct
{
int length;
ElemType data[MaxSize+1];
}SqList;

//为了方便,顺序表的第一个位置不放值,也就是下标为0的
void CreateList(SqList *&L,ElemType a[],int n)
{
int i;
for(i=1;i<=n;i++)
L->data[i]=a[i];
L->length=n;
}
//初始化顺序表,向系统申请空间
void InitList(SqList *&L)
{
L=(SqList *)malloc(sizeof(SqList));
L->length =0;
}
//在有序表中加入一个数,使得表依然有序
bool InsertList(SqList *&L,ElemType e)
{
if(L->length==MaxSize)
return false;
int n=L->length+1;
while(n>=2 && edata[n-1])
L->data[n+1]=L->data[–n];
L->length++;
L->data[n]=e;
return true;
}
//输出线性表长度和元素
void ShowList(SqList *L){
printf(“表长度:%d\n表元素:”,L->length);
for(int i=1;i<=L->length;i++)
printf("%d “,L->data[i]);
printf(”\n\n");
}

void main()
{

SqList *L;
ElemType a[]={0,2,4,6,8,10,12,14};//第一个值0不用
ElemType e=15;      //修改e的值可以测试不同的插入位置
InitList(L);       //初始化顺序表
CreateList(L,a,7); //给顺序表初始值
ShowList(L);       //输出顺序表信息
InsertList(L,e);   //插入元素
ShowList(L);       //输出顺序表信息

}

初始数据我们给了:2 4 6 8 10 12 14

(1)先测试一下插入表头,插入1,修改e=1

数据结构:有序顺序表里插入一个数,使得顺序表依然有序。

(2)插入表中,e=5
数据结构:有序顺序表里插入一个数,使得顺序表依然有序。
(3)插入表尾,e=20
数据结构:有序顺序表里插入一个数,使得顺序表依然有序。
**注:本程序在VC++6.0程序中成功运行,其他编程平台请自行尝试。

上一篇:线性表—顺序存储习题1.1-1.4


下一篇:顺序表插入数据