顺序表的基本操作(完整代码)实验

 

实验目的和要求:

Status initlist(sqlist &L)

                           Status listinsert( sqlist &L,  int i,  int e )

                           Status listindele( sqlist &L,  int i,  int &e )

                           Status listinprint( sqlist L)

                          void MergeList(sqlist La, sqlist Lb, sqlist &Lc)

                          void inverse(sqlist &Lc)

      完成以上几个函数,实现手工创建两个非递减序列存放于La和 Lb中,并调用MergeList实现数据的合并。合并之后用inverse把Lc中的数据就地逆置(不占用太多额外辅助空间,空间复杂度为常数级别)

关于程序健壮性的内容:

1、对于插入与删除位置若不合法请给出适当提醒

2、若输入的数据不是非递减排列可通过自己写的

      sort()函数排序后再进行后续操作

 实验代码如下:

#include 
#define ERROR 0
#define OK 1
#define MAXSIZE 15
#define OVERFLOW 0
typedef int Status;
typedef int ElemType;
	typedef struct
	{
		ElemType *elem;
		int length;
	}Sqlist;
	Status InitList(Sqlist &L)
{
	L.elem=new ElemType[MAXSIZE];
	if(!L.elem) return(OVERFLOW);
	else {L.length=0;
	return OK;
	}}
	Status ListInsert(Sqlist &L,int i,ElemType e)
	{
		if((i<1)||(i>L.length+1)) return printf("Sorry!Locate is error!");
		else if(L.length==MAXSIZE) return printf("Sorry!Locate is error!");
		else {
			for(int j=L.length -1;j>=i-1;j--)
				L.elem [j+1]=L.elem [j];
			L.elem [i-1]=e;
			++L.length ;
			return OK;
		}
	}
	Status Listindele(Sqlist &L,int i){
		if((i<1)||(i>L.length)) return printf("Sorry!Locate is error");
		else 
			{
				//e=L.elem [i-1];,int &e
				for(int j=i;j<=L.length-1;j++)
					L.elem [j-1]=L.elem [j];
				--L.length ;
				return OK;
		}}
		void Listprint(Sqlist L)
		{
			int i;
			printf("\n顺序表中的数据为:\n");
			for(i=0;iL.elem[i+1]){
				c=L.elem[i];
				L.elem[i]=L.elem[i+1];
				L.elem[i+1]=c;
			}
		}
		main(){
			int i,j,e;
		    Sqlist L,L1,L2;
			InitList( L);
			printf("\n 请输入你想创建的顺序表的长度(15以内): \n");
			scanf("%d",&L.length);
			printf("\n 请依次输入%d个整数,以空格分隔:\n",L.length);
			for(i=0;i

实验结果:

实验运行的软件为Dev-C++

顺序表的基本操作(完整代码)实验_第1张图片

实验分析:

  实现手工创建两个非递减序列存放于La和 Lb中,并调用MergeList实现数据的合并。合并之后用inverse把Lc中的数据就地逆置(不占用太多额外辅助空间,空间复杂度为常数级别).

   对于插入与删除位置若不合法请给出适当提醒

   输入的数据不是非递减排列可通过自己写的sort()函数排序后再进行后续操作

你可能感兴趣的:(c++,算法,开发语言)