数据结构之顺序结构线性表之操作
2013-11-22 14:05
459 查看
#include<stdio.h> typedef int ElemType; typedef int Status; #define MAXSIZE 5 #define OK 1 #define ERROR 0 typedef struct { ElemType data[MAXSIZE]; int length; }SqList; //顺序结构的线性表初始化 void InitSqList(SqList *L) { L->length=0; } //获取顺序结构的线性表元素值 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; } //往顺序结构的线性表添加元素 Status ListInsert(SqList *L,int i,ElemType e) { int k; if(i<1 || i>L->length+1) return ERROR; if(L->length==MAXSIZE) return ERROR; if(i<=L->length) { for(k=L->length-1;k>i-1;i--) L->data[k+1]=L->data[k]; } L->data[i-1]=e; L->length++; return OK; } //删除顺序的线性表某个元素 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]; for(k=i;k<L->length;k++) L->data[k-1]=L->data[k]; L->length--; return OK; } //主函数 int main() { SqList sq; int i; int value; Status flag; InitSqList(&sq); for(i=1;i<=8;i++) { flag=ListInsert(&sq,sq.length+1,i); printf("flag=%d length=%d\n",flag,sq.length); } ListDelete(&sq,2,&value); printf("value=%d\n",value); for(i=1;i<=8;i++) { flag=GetElem(&sq,i,&value); printf("flag=%d length=%d value=%d\n",flag,sq.length,value); } return 0; }
运行效果图如下:
相关文章推荐
- 数据结构-顺序线性表基本操作实现
- 数据结构基础之数组实现线性表各种操作
- 【数据结构】顺序栈的基本操作操作---C/C++
- 数据结构之算法2.6-在顺序线性表L中查找第1个值与e满足compare()的元素的位序
- 数据结构之线性表的顺序结构操作2-(删除,插入,查值等)
- 数据结构——线性表(顺序存储)
- 数据结构——顺序表的基本操作
- 数据结构-线性表_顺序表
- C语言 数据结构 线性表 顺序表 线性表的顺序存储结构
- 严蔚敏数据结构顺序表的所有基本操作
- 数据结构——顺序表的基本操作
- 数据结构基础之数组实现线性表各种操作(二)
- 【数据结构】线性表顺序结构的操作---C/C++语言
- 数据结构之顺序表基本操作
- 数据结构之顺序队列和链式队列常用的一些操作
- 数据结构笔记(一)线性表的顺序表示和基本操作及其顺序表实现的集合运算(A-B)U(B-A)实例
- 数据结构之线性表(顺序表)的基本操作
- 数据结构基础--线性表操作
- 数据结构——线性表(顺序结构和链式结构)
- 数据结构-顺序表的基本操作