线性表的顺序存储
2014-04-08 10:16
288 查看
/******线性表的顺序存储******/ /*来源:《大话数据结构》*/ #include <iostream> #define MAXSIZE 10 /*存储空间初始分配*/ using namespace std; #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; //线性表的存储结构 typedef int ElemType /*ElemType根据实际情况设定,这里设为int*/ typedef struct { ElemType data[MAXSIZE]; /*数组存储数据元素,最多个数为MAXSIZE*/ int length; /*线性表的当前长度*/ }SqList; //**获得元素操作**// /*Status是函数的类型,其值是函数结果状态代码,OK或ERROR*/ /*初始条件:顺序线性表L已存在,1<=i<=ListLength(L)*/ /*操作结果:用e返回L中第i个元素的值*/ Status GetElem(SqList L,int i,ElemType *e) { if(L.length==0 || i<1 || i>L.length) return ERROR; *e=L.data[i-1]; return OK; } //**插入操作**// /*初始条件:顺序线性表L已存在,1<=i<=ListLength(L)*/ /*操作结果:在L的第i个位置之前插入新的数据元素e,L的长度加1*/ Status ListInsert(SqList *L,int i,ElemType e) { int k; if(L->length==MAXSIZE) /*顺序线性表已满*/ return ERROR; if(i<1 || i>L->length+1)/*i不在范围内*/ return ERROR; if(i<=L->length) /*插入位置不在表尾*/ { for(k=L->length-1;k>=i-1;k--) { L->data[k+1]=L->data[k]; } } L->data[i-1]=e; /*插入新元素*/ L->length++;; return OK; } //**删除操作**// /*初始条件:顺序线性表L已存在,1<=i<=ListLength(L)*/ /*操作结果:删除L中的第i个元素,并用e返回其值,L的长度减1*/ Status ListDelete(SqList *L,int i,ElemType *e) { int k; if(L->length==0) return ERROR; if(i<1 || i>L->length) return ERROR; *e=L->data[i-1]; if(i<=L->length-1) { for(k=i;k<L->length;k++) { L->data[k-1]=L->data[k]; } } L->length--; return OK; }
相关文章推荐
- 线性表(List)---队列的顺序存储
- 【数据结构之线性表顺序存储】简单的数组的方式实现
- 2008秋季-计算机软件基础-线性表的顺序存储(顺序表)
- 线性表的顺序存储实现
- 线性表的顺序存储实现
- 数据结构——线性表(一)线性表的顺序存储和单链表
- 线性表的顺序存储
- 【数据结构】线性表的顺序存储完整程序
- 线性表的顺序存储
- 第一章:线性表(1)——顺序存储
- 第二章:线性表-顺序存储(2)
- 线性表的顺序存储实现
- 线性表顺序存储(C++ 实现)
- [SDUT](1130)数据结构上机测试1:顺序表的应用 ---顺序存储(线性表)
- 线性表的顺序存储和链式存储的实现(C)
- 线性表的顺序存储
- 线性表学习归纳总结二:线性表顺序存储实现
- 数据结构-线性表的顺序存储实现及各种操作代码
- 线性表的顺序存储
- 线性表顺序存储