数据结构,顺序存储线性表

//线性表顺序存储 
#include
#include 
#define MAXSIZE 100
#define ElemType int
//定义结构体 
typedef struct LinearList{
	ElemType elem[MAXSIZE];
	int last; 
}LinearList; 
//初始化链表 
void InitList(LinearList &L){
	L.last=-1;
};
//链表长度 
int ListLength(LinearList &L){
	int length=L.last+1;
	return length;
}
//按位序查找 
int GetData(LinearList &L,int i){
	int x;
	x=L.elem[i-1];
	return x;
}
//在指定位置插入元素 
bool InsList(LinearList &L,int i,int e){
	int j;
	if(L.last+1==MAXSIZE||i-1>L.last+1||i<1){
		return false;
	}
	else {
	for( j=L.last+1;j>=i;j--){
		L.elem[j]=L.elem[j-1];
	}
	L.elem[i-1]=e;
	L.last++;
	return true;}
}
//删除指定位序元素 
bool DeleList(LinearList &L,int i,int &e){
	int j;
	if(i-1>L.last||L.last<=-1||i-1<0){
		return false;
	}
	e=L.elem[i-1];
	for(j=i;j<=L.last+1;j++){
		L.elem[j-1]=L.elem[j];
	}
	L.last--;
	return true;
}
//按值查找,返回位序 
int Locate(LinearList &L,int e){
	for(int j=0;j<=L.last;j++){
		if(L.elem[j]==e){
			return j+1;
		}
		else return -1;
	}
}
//打印线性表 
void PLList(LinearList &L){
	printf("打印线性表:\n");
	for(int j=0;j<=L.last;j++){
		printf("%d ",L.elem[j]);
	}
	printf("\n");
}
int main(void){
	//声明链表
	LinearList L;
	//初始化
	InitList(L);
	//插入数据,直到换行 
	printf("请在指定位置插入值,换行表示结束:\n");
	int i;
	int e;
	scanf("%d %d",&i,&e);
	InsList(L,i,e);
	while(getchar()!='\n'){
	scanf("%d %d",&i,&e);
	InsList(L,i,e);
	} 
	//打印线性表 
    PLList(L);
    //打印线性表长度 
	printf("线性表的长度为%d\n",ListLength(L));
	//按位序查找 
	printf("按位序查找,请输入你想查找的位序h:\n");
	int h;
	scanf("%d",&h);
    printf("第%d位的值为%d\n",h,GetData(L,h));
    ///值查找,返回位序 
    printf("按值查找,请输入你想查找的值k:\n");
    int k;
    scanf("%d",&k); 
    printf("您要查找的值%d在%d位序\n",k,Locate(L,k));
	// 删除指定位序,删除值存在c
	int a,c;
	printf("请输入删除的位序a:\n");
	scanf("%d",&a); 
	printf("已删除位序a:%d处位置,删除值为c:%d\n",a,DeleList(L,a,c));
	//打印线性表 
    PLList(L);
    //打印线性表长度 
	printf("线性表的长度为%d\n",ListLength(L));
    //插入数据,直到换行 
	printf("请在指定位置插入值:\n");
	int b;
	int d;
	scanf("%d %d",&b,&d);
	InsList(L,b,d);
	//打印线性表 
    PLList(L);
    //打印线性表长度 
	printf("线性表的长度为%d\n",ListLength(L));
	return 0;
} 

数据结构,顺序存储线性表_第1张图片

按值查找有点问题,只能返回最前的位序.

你可能感兴趣的:(数据结构,算法)