南昌大学实验报告
学生姓名:李木子学号:8000113146 专业班级:软工133 实验类型:□验证□综合□设计□创新实验日期:实验成绩:
一、实验项目名称
两个有序顺序表的结合
二、实验目的
顺序表的创建
1.实现顺序表的追加
2.实现顺序表的显示
3.两顺序表的合并
三、实验基本原理
四、主要仪器设备及耗材
电脑,VC6.0
五、实验步骤
/*******************************************/
/* 顺序表的创建 */
/* 1.实现顺序表的追加 */
/* 2.实现顺序表的显示 */
/* 3.两顺序表的合并 */
/*******************************************/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int datatype;
/************************************/
/* 顺序表结构体的定义 */
/************************************/
typedef struct{
datatype a[MAXSIZE];
int size;
}sequence_list;
/************************************/
/* 函数声明 */
/
************************************/
void init(sequence_list *slt);
void append(sequence_list *slt,datatype x);
void display(sequence_list slt);
int find(sequence_list slt ,datatype x);
void dele(sequence_list *slt,datatype x);
void sort(sequence_list *s);
void combine( sequence_list *s1 ,sequence_list *s2 ,sequence_list *s3);
/************************************/
/* 顺序表的初始化函数 */
/************************************/
void init(sequence_list *slt)
{
slt->size=0;
}
/************************************/
/* 顺序表的追加函数 */
/************************************/
void append(sequence_list *slt,datatype x)
{
if(slt->size==MAXSIZE)
{
printf("\n顺序表是满的!");
exit(1);
}
slt->a[slt->size]=x ;
slt->size=slt->size+1;
}
/************************************/ /* 顺序表的显示函数 */ /************************************/ void display(sequence_list slt)
{
int i;
if(!slt.size)
{
printf("\n顺序表为空");
}
else
{
for(i=0;i<slt.size;i++)
printf("\n%d\n",slt.a[i]);
}
}
/************************************/ /* 顺序表的查函数 */ /* 返回所查数据的下标 */ /************************************/ int find(sequence_list slt ,datatype x) {
int i=0;
while(i<slt.size &&slt.a[i]!=x)
i++;
return(i<slt.size? i:-1);
}
/************************************/ /* 顺序表的删除函数 */ /************************************/ void dele(sequence_list *slt,datatype x) {
int i=0;
i=find(*slt,x);
for(;i<slt->size-1;i++)
slt->a[i]=slt->a [i+1];
slt->size--;
}
/************************************/
/* 顺序表的插入函数 */
/************************************/ void insert(sequence_list *slt,datatype x) {
int i=0;
i=find(*slt,x);
for(;i<slt->size-1;i++)
slt->a[i+1]=slt->a [i];
slt->size++;
数据验证怎么设置下拉菜单}
/************************************/
/* 顺序表排序 */
/************************************/ void sort(sequence_list *s)
{
int i ;
int j ;
int temp ;
for(i=0;i<s->size-1;i++)
{
for(j=i+1;j<s->size;j++)
{
if(s->a[i]>=s->a[j])
{
temp=s->a[i];
s->a[i]=s->a[j];
s->a[j]=temp;
}
}
}
}
/************************************/
/* 两个有序顺序表连接函数 */
/************************************/
void combine( sequence_list *s1 , sequence_list *s2 , sequence_list *s3 ) {
int i=0;
int j=0;
int k=0;
while( i < s1->size && j < s2->size)
{
if(s1->a[i]<=s2->a[j])
{
s3->a[k]=s1->a[i];
i++;
}
else
{
s3->a[k]=s2->a[j];
j++;
}
k++;
}
if(i==s1->size)
{
while(j<s2->size)
{
s3->a[k]=s2->a[j];
k++;
j++;
}
}
if(j==s2->size)
{
while(i<s1->size)
{
s3->a[k]=s1->a[i];
k++;
}
}
s3->size=k;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论