顺序表

线性表

一.线性表的定义

     线性表是零个或多个数据元素的有序序列。数学的定义(a1,a2,a3,...ai-1,ai,ai+1,..an),其中第一个元素a1没有前驱,最好一个元素an没有后继,其他的元素ai有一个前驱ai-1,有一个后继ai+1,对于ai元素,i是此元素的位序.

 二.数据抽象

        初始化(InitList),判断是否是空表(IsEmpty),清空表(ClearList),插入元素(Insert),删除元素(Delete),获取元素(GetItem),定位元素(LocateItem),获取表长度(GetLength)

 

三.顺序存储

    结构定义:        

typedef int ElemType;
typedef struct 
{
    ElemType data[MAXSIZE];
    int length;
} sqlist;

  地址公司:address(ai)=address(a1)+(i-1)*c;其中c是存储单元的字节数

     

/**<strong><span style="font-size:10px;">获得元素</span></strong>**/
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0;
typedef int Status
Status getElem(sqlist ls,int i,item_type *e)
{
  if(i<0||i>ls.length)
     return 0;
  *e=ls.data[i-1];
  return OK; 
}
 
/**插入元素**/
Status ListInser(SqList *l,int i,ElemType e)
{
	//验证i
	if(i-1<0||i>l->length||l->length==MAXSIZE)
	{
		return ERROR;
	}
	//从顺序表最后位置开始移动
	int j;
	for(j==l->length-1;j>=i-1;j--)
	{
		l->data[j+1]=l->data[j];
	}
	//插入元素
	l->data[i-1]=e;
	//顺序表长度加1
	l->length++;
	return OK;
}


 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值