附:线性表顺序存储结构的九个基本操作

#include<stdio.h>
#include<malloc.h>
#define MaxSize 100
typedef char ElemType;

typedef struct{
	ElemType elem[MaxSize];
	int length; 
}SqList; 

//初始化 
void InitList(SqList &L) 
{
	L.length=0;
}

//清空
void ClearList(SqList &L)
{
	L.length=0;
}

//判断是否为空 
bool ListEmpty(SqList L)
{
	return (L.length==0);
}
  
//求长度 
int ListLength(SqList L)
{
	return L.length;
}

//输出线性表 
void DispList(SqList L)
{
	for(int i=0;i<L.length;i++)
		printf("%c",L.elem[i]);
		printf("\n");
}

//求数据元素值 
bool GetElem(SqList L,int i,ElemType &e){
	if(i<1||i>L.length)
	return false;
	e=L.elem[i-1];
	return true;
}

//按值查找元素 
int LocateElem(SqList L,ElemType e)
{
	for(int i=0;i<=L.length;i++)
	{
		if(L.elem[i]==e)
		return i+1;
	}
	return 0;
}

// 插入数据元素
bool ListInsert(SqList &L,int i,ElemType e) 
{
	if(L.length==MaxSize)
	return false;
	if(i<1||i>L.length+1)
	return false;
	i--;
	for(int j=L.length;j>=i;j--)
	L.elem[j]=L.elem[j-1];
	L.elem[i]=e;
	L.length++;
	return true;
	
}

//整体创建
void Createlist(SqList &L,ElemType a[],int n)
{
	int i;
	for(i=0;i<n;i++)
	L.elem[i]=a[i];
	L.length=n;
 } 

//删除线性表
bool ListDelete(SqList &L,int i)
{
	if(i<1||i>L.length)
	return false;
	for(int j=i;j<L.length;j++)
	L.elem[j-1]=L.elem[j];
	L.length--;
	return true;
 } 

//并集
void Merge(SqList &LA,SqList &LB){
	ElemType x;
	int i,k;
	for(i=0;i<LB.length;i++)
	{
		x=LB.elem[i];
		k=LocateElem(LA,x);
		if(k==0)
		{
			ListInsert(LA,LA.length,x);
			LA.length++;
		}
	}
} 


上一篇:ElemType


下一篇:【Git安装注册过程】