#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万物产生顺序
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
无懈可击的Web设计
【美】Dan Cederholm / 马跃 / 清华大学出版社 / 2012-5 / 39.00元
本书将指导您采用标准设计策略来满足以各种方式浏览网页的各类用户的需要。每章首先列举一个沿用传统HTML技术的实例,然后指出该实例的局限性,并利用XHTML和CSS对其进行重构。从中您将学会如何用简洁高效的HTML标记和CSS来取代臃肿的代码,从而创建加载速度极快、能供所有用户使用的网站。本书最后将前面各章讨论的所有页面组件珠联璧合地结合在一起,制作了一个页面模板。这一版全面润色和更新了上一版本,介......一起来看看 《无懈可击的Web设计》 这本书的介绍吧!