标签:物理 ons 存储方式 技术 data 调整 ++ ide als
顺序存储方式:
const int maxn = 100; // 数组的最大长度 struct seq_list{ int data[maxn]; ElemType len; // 当前线性表的长度,应初始化为0 }; // 查取第i个元素 主要是注意表的状态以及参数的合法性 // 线性表非空 + 索引i 是第i个, 故而范围 [1, L.len] bool get_elem(seq_list L, int i, ElemType *e){ if(L.len == 0 || i < 1 || i > L.len) return false; *e = L.data[i - 1]; return true; } // 往第i个位置插入元素e // 插入得: 线性表未满 + i ∈ [1, L.len + 1] 并且,若不是在尾巴后插入元素,元素需往前调整 bool insert_elem(seq_list& L, int i, ElemType e){ if(L.len == maxn || i < 1 || i > L.len + 1) return false; if(i != L.len + 1){ for(int j = L.len - 1; j >= i - 1; --j){ L.data[j + 1] = L.data[j]; } } L.data[i - 1] = e; ++L.len; return true; } // 删除第i个元素,同理,需:线性表非空 + i ∈ [1, L.len] // 如果删除的并非最后一个元素,删除之后(这里可以不做真实的删除操作,直接覆盖并且控制L.len即可 // 删除之后需要调整,从第 i + 1个到第 L.len个元素,都往前挪一个位置 并且 --L.len bool delete_elem(seq_list& L, int i, ElemType *e){ if(L.len == 0 || i < 1 || i > L.len) return false; *e = L.data[i - 1]; if(i != L.len){ for(int j = i; j < L.len; ++j){ L.data[j + 1] = L.data[j]; } } --L.len; return true; }
标签:物理 ons 存储方式 技术 data 调整 ++ ide als
原文地址:http://www.cnblogs.com/Rosebud/p/7344478.html