数据结构中线性表的顺序储存结构
2017-09-06 14:16
225 查看
顺序储存结构的线性表即为利用数组来模拟链表的操作,一切皆数组。
#include <stdio.h> #define MAX_SIZE 100 typedef int TYPE;//在这里修改处理元素的类型 typedef int bool; #define true 1 #define false 0
//定义线性表结构体 typedef struct { TYPE line[MAX_SIZE]; int len; }List; //初始化线性表 void InitList(List *L) { L->len = 0; } //线性表的判空 bool ListEmpty(List L) { if(L.len == 0) { return true; } else { return false; } } //线性表的清空 void ClearList(List *L) { L->len = 0; } //回显线性表中某位置的元素 void GetElem(List L, int i, TYPE* num) { *num = L.line[i]; } //定位线性表中的元素 TYPE LocateELem(List L, TYPE e) { int i, len = L.len; for(i = 0; i < len; i++) { if(e == L.line[i]) { return i + 1; } } return 0; } //往线性表某位置中插入一个元素 bool ListInsert(List* L, int i, TYPE e) { if(L->len == MAX_SIZE) { return false; } else if(i < 0|| i >= MAX_SIZE) { return false; } if(i <= L->len) { int k; for(k = L->len - 1; k >= i - 1; k--) { L->line[k+1] = L->line[k]; } } L->line[i - 1] = e; L->len++; return true; } //删除线性表中某位置的元素 void ListDelete(List *L, int i,TYPE *e) { int j = L->len; L->len--; *e = L->line[i - 1]; for(i -= 1; i < j - 1; i++) { L->line[i] = L->line[i + 1]; } } //显示线性表元素个数 int ListLength(List L) { return L.len; }
相关文章推荐
- 数据结构之线性结构---栈 顺序储存
- 数据结构之线性结构---队列 顺序储存
- 数据结构-线性表的顺序结构
- 【算法和数据结构】_17_小算法_线性结构:顺序表
- 数据结构(线性结构习题)Problem C: 下车的顺序
- 线性表的顺序储存结构
- 数据结构 学习笔记(二):线性结构:线性表(顺序表,链表,广义表,多重链表)
- 线性表--顺序储存结构
- 线性表的顺序储存结构定义(动态)实现
- 数据结构之线性表--顺序结构测试
- 数据结构 | 如何实现线性表的顺序结构
- 数据结构之线性表(顺序储存)
- 数据结构 | 如何实现线性表的顺序结构
- 数据结构 线性表的顺序结构
- 数据结构之线性表之顺序表和链表(通过数据结构角度深入理解arrayList和linkedList的特性)
- 数据结构-线性表之顺序储存(Java实现)
- 数据结构---线性表的顺序储存
- 数据结构 线性表的顺序储存结构
- java数据结构 一(线性表循序储存结构)
- java数据结构 六 栈共享(顺序储存结构)