将一个数插入到一个有序顺序表插入后仍然保证顺序表有序
江西师范大学计算机信息工程学院学生实验报告
专业__网络工程_姓名_ 学号_日期_2012-12-12
课程名称 数据结构 实验室名称 实验名称 将一个数插入到一个有序顺序表,插入后仍然保证顺序表有序 指导教师 成绩 1、 实验目的
了解顺序表的定义、查找和插入。
2、 实验原理和内容
在顺序表的基础上插入数据并保证有序。
3、 实验步骤
先利用函数void display(sequence_list slt)打印顺序表的各个节点 在利用函数int find (sequence_list slt,datatype x)查找符合条件的节点 最好用函数void insert (sequence_list *p,datatype x,int pos)插入数据 构建主函数并获得数据
4、 程序及运行结果(或实验数据记录及分析) #include
#define MAXSIZE 100
typedef int datatype;
typedef struct{
datatype a[MAXSIZE];
int size; //顺序表的大小 }sequence_list;
void display(sequence_list slt)
{
int i;
if(!slt.size) //如果size=0(即顺序表大小为0,
printf("\n顺序表是空的"); //则提示顺序表为空
else
for (i=0;isize;i>pos;i--) //从最后一个结点开始将结点都后移一位
//直到移到插入位置
p->a[i]=p->a[i-1]; //将前一个结点与移动到后一个结点
p->a[pos]=x; //插入结点
p->size++; //顺序表大小加1 }
main ()
{
sequence_list slt;
int ch;
slt.size=0;
do
{
scanf("%d",&ch);
insert(&slt,ch,find(slt,ch));
display(slt);
}while(ch!=-1);