线性表-1-顺序表的基本操作

在这里插入代码片
```#include <iostream>
#define maxSize 100

using namespace std; 

typedef struct Sqlist{
     
	int data[maxSize];
	int length;
}Sqlist;

//初始化顺序表 
void initList(Sqlist &L){
     
	L.length = 8;
	L.data[0] = 4;
	L.data[1] = 5;
	L.data[2] = 7;
	L.data[3] = 9;
	L.data[4] = 10;
	L.data[5] = 13;
	L.data[6] = 17;
	L.data[7] = 21;
	
}

//用e返回L中p位置的元素值 
int getElem(Sqlist &L,int p,int &e){
     
	if(p<0 || p>L.length-1)
		return 0;
	e = L.data[p];
	return 1;
}


//查找L中第一个比x大的元素的索引值 
int fineElem(Sqlist L,int x){
     
	int i;
	for(i=0;i<L.length;i++){
     
		if(x<L.data[i]){
     
			return i;
		}
	}
	return i;
}


//查找L中第一个等于x的元素的索引值 
//int fineElem(Sqlist L,int x){
     
//	int i;
//	for(i=0;i
//		if(x==L.data[i])
//			return i;
//	}
//	return -1;
//}

//在L中p位置插入e 
int insertElem(Sqlist &L,int p,int e){
     
	int i;
	if(p<0||p>L.length||L.length==maxSize)
		return 0;
	for(i=L.length-1;i>=p;--i){
     
		L.data[i+1]=L.data[i];
	}
	L.data[p]=e;
	++L.length;
	return 1;
}

//在L中删除p位置的元素 
int deleteElem(Sqlist &L,int p,int &e){
     
	int i;
	if(p<0||p>L.length-1)
		return 0;
	e = L.data[p];
	for(i=p;i<L.length;i++){
     
		L.data[i] = L.data[i+1];
	}
	--(L.length);
	return 1;
} 

int main(int argc, char** argv) {
     
	Sqlist list;
	int e;
	
	initList(list);
	cout<<fineElem(list,20);
	cout<<getElem(list,5,e);
	
	return 0;
}

你可能感兴趣的:(线性表-1-顺序表的基本操作)