顺序表的基本操作

准备工作

#include <Stdio.h>
#include <stdlib.h>

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXSIZE 20

typedef int Status;//状态量
typedef   int  ElemType;

创建线性表

创建一个简单的线性表


typedef struct 
{
	ElemType date [MAXSIZE];
	int length; 
}SqList;     						/*创建线性表SqList*/ 

得到线性表中的元素

Status GetElem(Sqlist l,int i,ElemType *e)
{
   if(l.length == 0||i < 1||i > l.length)
   return ERROR;
   *e=l.date [i-1];
   return OK ;
}             /*用e返回数据表l中第i个数据元素的值*/

线性表的插入操作

Status ListInsert(Sqlist *l,int  i,ElemType e)  /*在第i个位置之前插入e,l的长度加一*/ 
 {
	int k;
	if(l->length==MAXSIZE)      /*检查线性表是否满掉*/ 
	return ERROR;
	if(i<1||i >l->length +1)   /*插入的位置是否在线性表里面*/ 
	return ERROR;
	if(i<=l->length)    /*判断插入的位置是否在最后一个位置*/
	{
		for(k=l->length-1;k>=i-1;k--)
		{
			l->date[k+1] =l->date[k]; /*把要插入位置后的数据元素向后移动一位*/ 
		}
} 
	l->date[i-1]==e;   /*插入新元素*/ 
	l->length++;   /*线性表长度加一*/ 
	return OK;
 }

线性表的删除操作

Status  ListDelete(Sqlist *l,int i,ElemType *e)   /*删除第i个元素*/ 
{
	int k;
	if(l->length == 0)  /*判断是不是空表*/ 
	return ERROR;
	if(i <1|| i >l->length) /*判断是不是在表内(即合法)*/ 
	return ERROR;
	*e=l->date[i-1];
	if(i<l->length)  /*假如删除的不是最后的位置*/ 
	{
		for(k=i;k<l->length;k++)
		l->date[k-1] = l->date[k] /*把删除位置后继元素前移*/ 
    }
    l->length--;   /*表长减一*/ 
    return OK;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值