线性表简单操作

#include<iostream>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
using namespace std;

typedef int ElemType;
typedef struct 
{
	ElemType elem[MAXSIZE];
	int	last;
}SeqList;

void PrintList(SeqList L)
{
	for(int j=1;j<L.last;j++)
		cout<<L.elem[j]<<"  ";
	cout<<endl;
		
}
void CreateList(SeqList *L)
{
		for(int i=1;i<=10;i++){
		L->elem[i-1]=i*3;
		L->last=i;
	}

}
int Locate(SeqList L,ElemType e)
{
	int i;
	i=0;
	while((i<=L.last)&&(L.elem[i]!=e))
	{
		i++;
	}
	if(i<=L.last)
		return(i+1);
	else
		return(-1);
}
int GetData(SeqList L,int j)
{
	if((j<1)&&(j>L.last))
		return (-1);
	int r=L.elem[j-1];
	return(r); 
}
int InsList(SeqList * L,int i,ElemType e)
{
	int k;
	if((i<1)||(i>L->last+2))
	{
		
		return(ERROR);
	}
	if(L->last>=MAXSIZE-1)
	{
		
		return(ERROR);
	}
	for(k=L->last;k>=i;k--)
		L->elem[k+1]=L->elem[k];

		L->elem[i]=e;
		L->last++;
		return(OK);
	

}
int DelByNum(SeqList *L,int i)	
{
	int k=L->last;
	for(i;i<k;i++)
		L->elem[i]=L->elem[i+1];
	L->last--;
	return(OK);
} 


int DelByData(SeqList *L,ElemType e)
{
	int i = 1;
	while(L->elem[i]!=e)
	i++;
	int Flag=DelByNum(L,i);
	return(Flag);
}
int main()
{
	SeqList L;
	CreateList(&L);
	PrintList(L);
	int find = Locate(L,15);
	
	int FindByData = GetData(L,4);
	
	int ins = InsList(&L,5,90);
	PrintList(L);
	cout<<"DelByNum(&L,2)"<<endl;
	int DelOne = DelByNum(&L,2);
	PrintList(L);
	cout<<"DelByData(&L,27)"<<endl;
	int DelTwo = DelByData(&L,27);
	PrintList(L);
	return 0;
}


你可能感兴趣的:(线性表简单操作)