数据结构之线性表顺序存储
2017-06-13 21:00
405 查看
//线性表顺序存储 #include<stdio.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 typedef int Status; #define MAXSIZE 20 typedef int ElemType; typedef struct { ElemType data[MAXSIZE]; int length; }SqList; 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 j; if(L->length == MAXSIZE) return ERROR; if(i<1 || i>L->length + 1) return ERROR; if(i<= L->length) { for(j = L->length - 1 ;j>=i-1;j--) { L->data[j+1]=L->data[j]; } } L->data[i -1] = e; printf("insert=%d\n",L->data[i - 1]); 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]; if(i<L->length) { for(k = i;k<L->length;k++) L->data[k - 1] = L->data[k]; } L->length--; return OK; } int main() { int i,data; SqList L; for(i = 0;i<MAXSIZE;i++) { L.data[i] = i; } L.length = MAXSIZE; GetElem(L,3,&data); printf("data=%d\n",data); ListDelete(&L,3,&data) ; printf("delete result\n"); for(i = 0;i<L.length;i++) printf(" %d",L.data[i]); printf("\n"); printf("insert result\n"); ListInsert(&L,3,22); for(i = 0;i<MAXSIZE;i++) printf(" %d",L.data[i]); printf("\n"); } //学习大话数据结构 加上测试程序
相关文章推荐
- 数据结构——线性表的伪链表存储(顺序存储链式遍历)
- 1.数据结构之线性表的顺序存储
- JAVA数据结构之线性表的顺序存储
- 数据结构之线性表顺序存储
- 数据结构——线性表的顺序存储
- 数据结构之线性表——队列的顺序存储
- 数据结构之线性表——链表的顺序存储(数组描述)
- 【数据结构作业一】写出顺序表的结构体类型定义及查找、插入、删除算法,并以顺序表作存储结构,实现线性表的插入、删除
- [SDUT](2116)数据结构实验之链表一:顺序建立链表 ---链式存储(线性表)
- 数据结构之线性表-顺序存储
- 数据结构——线性表及线性表顺序存储
- JavaScript描述数据结构之线性表(顺序存储)
- 数据结构(严蔚敏)C语言实现---线性表的顺序存储
- 数据结构-顺序存储-线性表-基本运算
- 数据结构——线性表之顺序存储学习
- 数据结构——简单线性表(顺序存储)
- 数据结构2----线性表顺序存储和链式存储的实现(霜之小刀)
- 数据结构——线性表(一)线性表的顺序存储和单链表
- 数据结构之线性表代码实现顺序存储,链式存储,静态链表(选自大话数据结构)
- 【数据结构】顺序线性表的构造和存储数据