#include <stdio.h> #define maxsize 10 #define failure -1 #define success 1 typedef int datatype; typedef struct { datatype data[maxsize]; int length; } Seqlist; typedef Seqlist* List; ///求表长度 o(1) int length(Seqlist L) { return L.length; } /// 取表元 O(n) datatype get(List L, int index) { if (index < 1 || index > L->length ) { return failure; } return L->data[index - 1]; } /// 定位 O(n) int locate(List L, datatype x) { // for (int i = 0; i < L->length - 1; i++) { // if (x == L->data[i]) { // return i + 1; // } // } // return failure; int i = 0; while (i < L->length && L->data[i] != x) { i++; } if (i < L->length) { return i + 1; } else { return failure; } } /// 删除 O(n) int delete(List L, int index) { if (index < 1 || index > L->length) { return failure; } for (int j = index; j < L->length; j++) { L->data[j - 1] = L->data[j]; } return success; } /// 插入 O(n) int insert(List L, datatype x, int index) { if (L->length == maxsize) { return failure; //表满 } if (index < 1 || index > L->length + 1) { return failure; //位置错 } for (int j = L->length; j >= index; j--) { L->data[j] = L->data[j - 1]; } L->data[index - 1] = x; L->length++; return success; } int main(int argc, const char * argv[]) { List L = (List)malloc(sizeof(Seqlist)); L->length = 0; printf("%d\n", length(*L)); int result = insert(L, 0, 1); printf("%d\n", result); printf("%d\n", length(*L)); printf("取表元 %d\n", get(L, 0)); return 0; }
--EOF--
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 数据结构线性表之顺序存储 类的封装
- php数据结构之顺序链表与链式线性表示例
- *Matlab—线性回归方程式与线性系统
- [译] JavaScript 线性代数:使用 ThreeJS 制作线性变换动画
- ViewGroup 默认顺序绘制子 View,如何修改?什么场景需要修改绘制顺序?
- JavaScript万物产生顺序
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。