数据结构 (C语言)顺序表的基本操作

#include <stdio.h>

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef int Status;

#define LISTINCREMENT 10
#define LISTSIZE 100

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

Status  ListInsert(Sqlist &L ,int i ,int e);
int LocateElem(Sqlist L,int e);
void print (Sqlist L);
Status Delete (Sqlist &L ,int i ,int &e);

void main(){
	Sqlist  L={
		{0,1,8,5,0,8,4,3,1,0,2,8}, 11};
	printf("原来的数组");
	print (L);

	ListInsert(L,3,1028);
	printf("\n插入后的数组");
	print(L);

	int e=8;
	printf("\n数字8所在位置:");
	int location=LocateElem(L,e);
	printf("%d",location);

	int r=0;
	Delete(L,4,r);
	printf("\n删除的元素是:");
	printf("%d",r);
	printf("\n删除后的数组:");
	print(L);
}


Status  ListInsert(Sqlist &L ,int i ,int e){
	//2.4 插入
	//在顺序表的L中的第i个位置插入新元素e
	if(i<1||i>L.length+1||L.length==LISTSIZE-1) return ERROR;
	for(int index=L.length;index>=i;index--)
	{
		L.data[index+1]=L.data[index];
	}
	L.data[i]=e;
	L.length++;
	return OK;
}

int LocateElem(Sqlist L,int e){
	//查找
	for(int i=1;i<=L.length;i++){
		if(e==L.data[i]){
			return i;
		}
	}
	 return ERROR;
}

Status Delete (Sqlist &L ,int i ,int &e){
	//删除
	if(i<1||i>L.length)return ERROR;
	e=L.data[i];
	for (int index=i;index<L.length;index++){
		L.data[index]=L.data[index+1];
	}
	L.length--;
	return OK;


}


void print (Sqlist L)
{	//打印数组	
	for(int i=1;i<=L.length;i++)
	{
		printf("%d ",L.data[i]);
	}
}

你可能感兴趣的:(数据结构,C语言,顺序表)