线性表
一.线性表的定义
线性表是零个或多个数据元素的有序序列。数学的定义(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 StatusStatus 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;
}
1597

被折叠的 条评论
为什么被折叠?



